精华内容
下载资源
问答
  • IDEAnnotation的支持

    2008-09-14 16:27:11
    我发现现在IDEAnnotation支持的都不好。 我试了eclipse和Netbeans 都没有正 Annotation代码提示,特别是有些 Annotation还带参数,如果你不是特别熟悉那些属性话,就要找一本书放在边上了。 我不...
  • 假如支持smt2,没有开smt时候是16核,开了smt就是32核,那在开了smt后,bios就要告诉kernel 当前 cpu 核数是32,这点可以从下面函数中发现端倪. static int cpu_up(unsigned int cpu, enum cpuhp_state target...
    有一个疑问,支持smt的cpu,bios 传递给os的cpu的个数是开了smt后的还是没有开smt的呢?
    这里举个例子,例如支持smt2的cpu,其实还有支持smt4,smt8的cpu,例如ibm的power系列
    假如支持smt2,没有开smt的时候是16核,开了smt就是32核,那在开了smt后,bios就要告诉kernel 当前
    的cpu 核数是32,这点可以从下面的函数中发现端倪.
    static int cpu_up(unsigned int cpu, enum cpuhp_state target)
    {
    	int err = 0;
    
    	if (!cpu_possible(cpu)) {
    		pr_err("can't online cpu %d because it is not configured as may-hotadd at boot time\n",
    		       cpu);
    #if defined(CONFIG_IA64)
    		pr_err("please check additional_cpus= boot parameter\n");
    #endif
    		return -EINVAL;
    	}
    
    	err = try_online_node(cpu_to_node(cpu));
    	if (err)
    		return err;
    
    	cpu_maps_update_begin();
    
    	if (cpu_hotplug_disabled) {
    		err = -EBUSY;
    		goto out;
    	}
    #从这里可以看到smt2也是被当成一个独立cpu的,其次即使bios开了smt,os也可以通过命令行参数禁止掉smt
    	if (!cpu_smt_allowed(cpu)) {
    		err = -EPERM;
    		goto out;
    	}
    
    	err = _cpu_up(cpu, 0, target);
    out:
    	cpu_maps_update_done();
    	return err;
    }

     

    展开全文
  • Springmvc实现jsonp的支持

    千次阅读 2018-10-01 23:32:28
    我们资源访问都是通过url,即域名+各种 参数。 当域名,端口号,协议不同时,即为跨域。 这种情况下就要使用jsonp来进行跨域请求。 jsonp原理是利用src能跨域请求资源特性来实现,细心...

    跨域问题

    提到jsonp首先就要提一下跨域。因为只有遇到跨域问题才会使用jsonp。

    现在的项目一般都是分布式项目,既然是分布式项目肯定就会涉及到跨域请求资源的问题,那么什么是跨域。

    我们对资源的访问都是通过url,即域名+各种 参数。

    当域名,端口号,协议不同时,即为跨域。

    这种情况下就要使用jsonp来进行跨域请求。

    jsonp的原理是利用src能跨域请求资源的特性来实现的,细心的人能够发现,我们在用src引入网络上的而非本地文件的jquery.js时能够正常引入和使用,而网络上的jquery资源域名,端口号,协议和我们的项目都不同,也就是跨域,但是能正常使用,也就证明了src可以跨域请求资源。

    ajax使用jsonp标识了dataType后就是告诉jquery要使用跨域请了,赶紧准备好callback函数,即在Ajax请求的地址后面加上:?callback=xxx,

    例如:http://localhost:8080/xxx/xx?callback=xxx

    那么后台在拿到请求后需要根据请求参数中是否有callback参数,来判断返回值是否要包裹callback函数。

    如何使用Jsonp?

    jquery的ajax可以很方便的使用jsonp,只需要在dataType上标识为jsonp即可。

    $.ajax({
              type : "post",
              url: "http://localhost:8080/xxx/xxx/xxx",
              data:data,
              dataType : "jsonp",//数据类型为jsonp   
              jsonpCallback:"callback",
              success : function(data){
               
              },
              error:function(){
              }
          }); 
    

    后台controller

    @RequestMapping(value="getResult",method=RequestMethod.GET)
    	public ResponseEntity<String> getResult(int limit,int offset,String search,HttpServletRequest request){
    		try {
    			EasyUIResult result=userService.queryAllUsers(limit,offset+1,search);
    			String callback=request.getParameter("callback");
    			
    			if("".equals(callback)){
    				return ResponseEntity.status(HttpStatus.OK).body(result.toString());
    			}else{
                            //包裹callback函数,给js解析。
    			return ResponseEntity.ok(callback+"("+result+")");
    			}
    			
    			
    		} catch (Exception e) {
    			
    			e.printStackTrace();
    		}
    		return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
    	}

    但是我们发现如果一个项目中跨域请求太多,那么后端需要在controller层中给每个jsonp请求进行callback函数包裹。显然太麻烦。我们可以给spring扩展一下,使其统一支持jsonp。

    编写一个类继承自spring的MappingJackson2HttpMessageConverter类,

    package cn.itcast.usermanage.util;
    
    import java.io.IOException;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.commons.io.IOUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.http.HttpOutputMessage;
    import org.springframework.http.converter.HttpMessageNotWritableException;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;
    
    import com.fasterxml.jackson.core.JsonEncoding;
    import com.fasterxml.jackson.core.JsonProcessingException;
    
    public class CallBackMappingJackson2HttpMessageConvert extends MappingJackson2HttpMessageConverter {
    	//做jsonP统一支持标识
    	private String callbackName;
    	@Override
    	protected void writeInternal(Object object, HttpOutputMessage outputMessage)
    			throws IOException, HttpMessageNotWritableException {
    		HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
    		String callbackParam=request.getParameter(callbackName);
    		if(StringUtils.isEmpty(callbackParam)){
    			super.writeInternal(object, outputMessage);//调用父类方法直接返回。
    		}else{
    			JsonEncoding encoding = getJsonEncoding(outputMessage.getHeaders().getContentType());
    			try {
    				String result =callbackParam+"("+super.getObjectMapper().writeValueAsString(object)+");";
    				IOUtils.write(result, outputMessage.getBody(),encoding.getJavaName());
    			}
    			catch (JsonProcessingException ex) {
    				throw new HttpMessageNotWritableException("Could not write JSON: " + ex.getMessage(), ex);
    			}
    		}
    		
    		super.writeInternal(object, outputMessage);
    	}
    	
    }

    使用该扩展类,在springmvc.xml里配置刚刚写的消息转化器。

    <!-- 注解驱动,升级版的默认配置,不配置此项,springmvc也会自动加载相关默认配置,但是都是废弃的不建议使用的 -->
    	<mvc:annotation-driven>
    		<mvc:message-converters>
    			<bean class="cn.itcast.usermanage.util.CallBackMappingJackson2HttpMessageConvert">
    				<property name="callbackName" value="callback"></property>
    			</bean>
    		</mvc:message-converters>
    	</mvc:annotation-driven>

    然后controller层就可以修改成原来返回json的形式,不需要在controller里判断是否请求里是否含有callback参数,因为配置完成后spring会自动处理。

    展开全文
  • TensorRT是一个高性能深度学习推理(Inference)优化器,可以为...TensorRT现已能支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有深度学习框架,将TensorRT和NVIDIAGPU结合起来,能在几乎所有框架中进行快...

    dc455c530ec0633d380d79820ac1b904.png

    TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT现已能支持TensorFlow、Caffe、Mxnet、Pytorch等几乎所有的深度学习框架,将TensorRT和NVIDIA的GPU结合起来,能在几乎所有的框架中进行快速和高效的部署推理。

    TensorRT加速DL Inference的能力来源于optimizer和runtime。其优化原理包括四个方面:

    -Layer & Tensor fusion: 将整个网络中的convolution、bias和ReLU层进行融合,调用一个统一的kernel进行处理,让数据传输变快,kernel lauch时间减少,实现加速。此外,还会消除一些output未被使用的层、聚合一些相似的参数和相同的源张量。

    -Mix precision:使用混合精度,降低数据的大小,减少计算量。

    -kernel auto-tuning:基于采用的硬件平台、输入的参数合理的选择一些层的算法,比如不同卷积的算法,自动选择GPU上的kernel或者tensor core等。

    -Dynamic tensor memory:tensorrt在运行中会申请一块memory,最大限度的重复利用此内存,让计算变得高效。

    1ba76207b40ad8f6530cdef92955722e.png

    aaa509ffbdf848a10aae1bb5a935e451.png

    在线课程:

    使用 NVIDIA 免费工具 TensorRT 加速推理实践 -- YOLO目标检测

    本次线上研讨会将介绍如何利用NVIDIA TensorRT加速YOLO目标检测,并着重介绍编程方法,此外还会涉及到TensorRT中数据类型、流处理、多精度推理等细节的展示。此次研讨会将为您带来以下内容:

    • TensorRT简介

    • TensorRT优化YOLO的实战编程

    • TensorRT实例展示

    课程日期:2020 年 2 月 18 日, 星期二

    时间:20:00-21:00

    报名扫码:

    bb3e13718901d2c2989e120bfd054817.png



    e3c92647ee521a4e1afe3b214b3ce843.png

    在线课程:

    使用 TensorRT 7.0 加速推理结果计算 -- 利用 CUDA 和 cuDNN 创建组件

    NVIDIA TensorRT™ 是一个高性能深度学习推理平台。它包含深度学习推理优化器和提供低延迟和高通量的深度学习推理应用程序的运行时。使用 TensorRT,您可以在主流框架下优化神经网络训练模型, 在保证高精度输出结果的同时校准低精度数据类型,并最终部署到超大型数据中心,嵌入式,或者汽车产品平台。本次在线研讨会针对有模型训练知识背景的技术人员,将会介绍 TensorRT 7.0 的最新特性,以及如何利用 CUDA 和 cuDNN 创建新的组件。通过本次在线研讨会,您可以获得以下内容:

    • TensorRT 7.0 的性能特点

    • TensorRT Plugin 的实现方法

    • TensorRT Plugin 的开发方法细节

    • cuDNN 的使用技巧

    课程日期:2020 年 2 月 21 日, 星期五

    时间:20:00-21:30 

    报名扫码:

    01b58a58ea8136038ad7a9baab011949.png

    注意:

    报名后会收到直播链接,如果没有收到请在垃圾邮箱里找一下。

    只有报名才能看回放哟!

    980ba1472c368d5cc7497dc7ef0899dc.gif

    展开全文
  • mysql/Java服务端emoji的支持前言: 最近开发iOS项目因为需要用户文本存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。困扰了数日,在就要绝望放弃边缘,终于完成了转换和迁移。在此特别分析...

    mysql/Java服务端对emoji的支持

    前言:
    最近开发的iOS项目因为需要用户文本的存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。困扰了数日,在就要绝望放弃的边缘,终于完成了转换和迁移。在此特别分析和整理,方便更多人。

    问题描述:
    如果UTF8字符集且是Java服务器的话,当存储含有emoji表情时,会抛出类似如下异常:

    java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94’ for column ‘name’ at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
    这就是字符集不支持的异常。因为UTF-8编码有可能是两个、三个、四个字节,其中Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以导致了数据插不进去。

    升级前需要考虑的问题:
    如果你的项目要进行移动产品的用户文本的存储,将你的DB字符集从UTF8/GBK等传统字符集升级到utf8mb4将是势在必行。你可以通过应用层面转换emoji等特殊字符,以达到原DB的兼容,我认为可行,但是你可能走了弯路。

    utf8mb4作为utf8的super set,完全向下兼容,所以不用担心字符的兼容性问题。切换中需要顾虑的主要影响是mysql需要重新启动(虽然mysql官方文档说可以动态修改配置,但是经过数次测试,还是需要重启才可生效),对于业务可用率的影响是需要考虑的大问题,这里就暂时不展开讨论了。

    升级步骤:
    1.utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。

    mysql版本查看命令请看:查看mysql版本的四种方法;mysql安装步骤请看:Linux中升级Mysql到Mysql最新版本的方法
    2.修改database、table和column字符集。参考以下语句:
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    3.修改mysql配置文件my.cnf(windows为my.ini)

    my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:

    [client] default-character-set = utf8mb4

    [mysql] default-character-set = utf8mb4

    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect=’SET NAMES utf8mb4’

    4.重启 MySQL Server、检查字符集

    1.)重启命令参考:/etc/init.d/mysql restart

    2.)输入命令:mysql,进入mysql命令行(如果提示没权限,可以尝试输入mysql -uroot -p你的密码)

    3.)在mysql命令行中输入:SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;

    检查是否如下:

    +————————–+——————–+
    | Variable_name | Value |
    +————————–+——————–+
    | character_set_client | utf8mb4 |
    | character_set_connection | utf8mb4 |
    | character_set_database | utf8mb4 |
    | character_set_filesystem | binary |
    | character_set_results | utf8mb4 |
    | character_set_server | utf8mb4 |
    | character_set_system | utf8 |
    | collation_connection | utf8mb4_unicode_ci |
    | collation_database | utf8mb4_unicode_ci |
    | collation_server | utf8mb4_unicode_ci |
    +————————–+——————–+
    rows in set (0.00 sec)

    特别说明下:collation_connection/collation_database/collation_server如果是utf8mb4_general_ci,没有关系。但必须保证character_set_client/character_set_connection/character_set_database/character_set_results/character_set_server为utf8mb4。关于这些字符集配置是干什么用的,有什么区别,请参考:深入Mysql字符集设置

    5.如果你用的是java服务器,升级或确保你的mysql connector版本高于5.1.13,否则仍然无法使用utf8mb4
    这是mysql官方release note,大家可以查看说明,并下载最新的mysql connector for java的jar包。
    这里为大家提供一个:mysql-connector-java-5.1.31-bin.jar
    同时记得修改pom配置哦~

    6.检查你服务端的db配置文件:

    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE
    jdbc.username=root
    jdbc.password=password

    特别说明其中的jdbc.url配置:如果你已经升级好了mysql-connector,其中的characterEncoding=utf8可以被自动被识别为utf8mb4(当然也兼容原来的utf8),而autoReconnect配置我强烈建议配上,我之前就是忽略了这个属性,导致因为缓存缘故,没有读取到DB最新配置,导致一直无法使用utf8mb4字符集,多么痛的领悟!!

    展开全文
  • 支持 if 和 else 成出现人认为:不怕一万 就怕万一认为 if 和 else 没必要成出现人认为:不便于理解,太多没用东西。我之前觉得也必须非要这样成,但是今天在工程中遇到了问题。就是
  • 开启IISNET的支持

    2007-10-08 22:38:00
    如果安装VS2005时系统没有IIS,那么就要开启IISNET的支持。在 “Visual Studio 2005 命令提示” 中输入如下命令即可。 
  • ThinkPHP3.1版本分组的支持如了如下改进: 每个分组支持独立空模块 ThinkPHP3.0及以前版本分组不支持定义独立空模块,空模块EmptyAction只能放置在分组目录外层,而ThinkPHP3.1版则改进了每个分组可以定义...
  • ibatis 连接池的支持

    2009-07-21 15:53:00
    ibatis 连接池的支持有3种,SIMPLE.DBCP.JNDI,但不原生支持C3P0,如果需要原生支持c3p0,而不是借助spring等这样框架来间接支持的话,就要对ibatis进行扩展。  A SIMPLE数据源 &lt;transactionManager ...
  • 最近开发iOS项目因为需要用户文本存储,自然就遇到了emoji等表情符号如何被MySQL DB支持的问题。困扰了数日,在就要绝望放弃边缘,终于完成了转换和迁移。在此特别分析和整理,方便更多人。   问题描述...
  • LinuxNUMA技术的支持

    千次阅读 2014-02-21 00:59:08
    现在,时钟问题越来越遇到限制,根据爱因斯坦相对论,电子速度不会超过光速,频率不断提高,意味着电子信号从一段到达另一端距离就要越短,计算机就要不断变小。但是,伴随时钟加快,处理器热量也急剧...
  • 微软从来不会让程序员用记事本写代码,如今html5马上就要火起来vs2010怎么会不支持html5呢?月月bird我将vs2010支持html5方法整理了一下。
  • WinCE6添加MFC的支持

    2013-11-18 11:41:20
    WinCE6默认情况下不支持MFC,在PB里面也没有与其有关组件可以添加。要想让WinCE6支持MFC,就要手动拷贝一些DLL,然后修改bib文件,把这些需要DLL打包进NK。  需要DLL在\Program Files\Microsoft Visual St
  • 现在,时钟问题越来越遇到限制,根据爱因斯坦相对论,电子速度不会超过光速,频率不断提高,意味着电子信号从一段到达另一端距离就要越短,计算机就要不断变小。但是,伴随时钟加快,处理器热量也急剧...
  • linux内核网卡驱动多队列的支持

    万次阅读 2010-02-09 21:11:00
    linux招牌就是它强大网络功能,稳定,高效,能随着现实日新月异而日趋完善。众所周知,linux网卡由结构体net_device表示... 所谓网卡发送数据包调度指是多个数据包共享一个网卡规则,当然就要拥有一

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,430
精华内容 972
关键字:

对的就要支持