变量

优先考虑 nameof

瘦欲@ 提交于 2020-03-11 08:59:41
在分布式场景中,我们经常需要进行多个系统之间的通信,要实现这些通信往往需要不同的库对相应的需求进行处理。这些库为了实现跨平台和跨语言的兼容性往往利用数据名称和字符串来运行,但是这么做就会出现类型安全问题,并且大部分工具也无法支持。 针对前面所述的问题, C# 6.0 中新增了 nameof 表达式,这个表达式可以根据变量来获取包含其名称的字符串,从而使开发人员不需要将变量名称写成字符串。使用 nameof 的好处有如下两点: 如果属性名改变了,那么相关的参数也会改变; nameof 会根据符号找出表示这个符号名称的字符串,其中所说的符号可以是类型、变量、接口或者命名空间。在 nameof 面对各种各样的符号的时候,表现出了协调一致的特征,不管变量是使用完全限定方式传递的还是其他的方式,它总是返回局部名称。 同样 nameof 也存在需要注意的地方,当我们针对泛型使用它时,我们的泛型类必须是封闭的,开发人员必须把每个类型参数显示制定出来。 在 C# 中部分异常类型可接受 string 参数,这可以让开发人员将引发异常的变量名作为参数传递出去。例如当我们检测到某个参数为空时需要抛出异常可以这么做: throw new ArgumentNullException ( nameof ( para ) , "参数类型为空" ) ; -

nginx之echo模块与内置变量

不羁岁月 提交于 2020-03-11 07:55:29
Nginx扩展第三方模块——echo 第三方模块是对nginx的功能扩展,第三方模块需要在编译nginx的时候使用参数--add-module=PATH指定扩展模块的源码包路径 给Nginx扩展添加echo功能,echo模块的下载地址: https://github.com/openresty/echo-nginx-module [root@app src]# yum install git -y [root@app src]# git clone https://github.com/openresty/echo-nginx-module.git #把echo模块从github上克隆下来 [root@app src]# nginx -s stop #扩展nginx的功能需要从新编译,编译前必须停止服务;如果服务不停止,则无法用新生成的nginx二级制程序替代原有程序 [root@app nginx-1.16.1]# ./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static

nginx内置变量

ぃ、小莉子 提交于 2020-03-11 07:53:42
本文根据 Nginx官网 整理了Nginx的ngx_http_core_module模块的内置变量,可与 Apache 做对比参考。随后做了一次测试观察各变量的值,并附上测试结果。 1.变量列表 $ arg _ name 请求行中参数 name 的值。 $args 请求行中的所有参数。 $binary_remote_addr 客户端地址的二进制形式。 $body_bytes_sent 发送给客户端的字节数,不包含响应头的内容,与Apache的mod_log_config模块中的%B兼容。 $bytes_sent 发送给客户端的字节数(1.3.8, 1.2.5)。 $connection 连接序列号(1.3.8,1.2.5) (有人说是TCP连接的序列号,但在1.6.2上抓包观察却不是) 。 $connection_requests 当前连接的请求数(1.3.8,1.2.5)。 $content_length 请求头中的Content-Length值。 $content_type 请求头中的Content-Type值。 $cookie_ name 名为 name 的cookie值。 $document_root 当前请求的根目录或别名。 $document_uri 同 $uri 。 $host 按如下顺序取值:请求的主机名,请求头的Host值,匹配的服务器名。 $hostname

深度学习框架Tensorflow

落花浮王杯 提交于 2020-03-11 07:47:41
Tensorflow安装环境检查 1.查看支持GPU 2.安装cuda 3.安装CuDNN-----下载需要注册账号 Tensorflow安装命令 &nbsp Tensorflow分为CPU与GPU两个版本,可以使用如下命令安装Tensorflow(jupyter中的安装) &nbsp !pip install tensorflow(CPU版本) &nbsp !pip install tensorflow-gpu(GPU版本) &nbsp 安装之后,在程序中就可以通过import导入使用,按照管理,我们重命名为tf。 &nbsp import tensorflow as tf 可以通过如下的方式查看tenforflow的版本: &nbsp tf.__version__ &nbsp 注意:目前tensorflow不支持Python3.7。 基于图的计算方式 &nbsp Tensorflow是通过数据流图完成计算的。Tensorflow的名称就是Tensor + flow。 &nbsp Tensor就是张量,张量是深度学习中表示数据的标准方式。简单的说,张量就是多维数组。 &nbsp flow就是数据的流动,是张量从一端流动到另外一端的过程。 &nbsp 图是由节点与边连接构成,在Tensorflow中,节点表示操作,边表示张量对象(张量的流动)。 &nbsp 其具体的操作:构建图--

优化PHP代码的40条建议

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-11 06:44:47
1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2.echo 比 print 快。 3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。 4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。 5.注销那些不用的变量尤其是大数组,以便释放内存。 6.尽量避免使用__get,__set,__autoload。 7.require_once()代价昂贵。 8.在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。 9.如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 10.函数代替正则表达式完成相同功能。 11.str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。 12.如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。 13.使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。 14.用@屏蔽错误消息的做法非常低效。 15.打开apache的mod_deflate模块。 16.数据库连接当使用完毕时应关掉。 17.

MDK编译优化笔记

北战南征 提交于 2020-03-11 06:00:37
在一次使用MDk的编译优化等级比较高的时候发现编译不优化时功能正常,开了优化等级0 2就出现异常,调试中看了很多博客总结一下。 一个变量,如果你的主程序要用到,同时中断还要用到,要加volatile修饰。告诉编译器这个变量是可能随时发生变化的,使得编译器编译程序的时候,每次都从RAM里面读取数据,而不是使用之前缓存到寄存器里面的值。 对于多任务的程序,如果一个公共变量被多个任务用到也要加volatile修饰。 同时变量定义的时候用了关键字volatile修饰,但是在其他文件引用时不加volatile变量修饰一样会被编译器优化掉。现则反过来想想,原因还是很简单的,MDK编译多个文件时是分别编译,最后再用链接器链接,当编译的时候一个模块引用另外一个模块的变量,完全是靠的变量声明,如果声明都不加volatile,那么引用的模块肯定会把变量当成普通变量的,再反推一下,如果原变量没有加volatile,但是声明的时候加了volatile,是不是引用的模块会将这个变量当成volatile型变量呢   C编译器是以每个C文件作为基本编译单元的,称为模块,被编译为obj;而模块之间的函数或变量访问都是通过标号来实现的,标号本身没有任何属性,只是提供给链接器使用的一个符号名称而已,标号的属性完全就靠调用的地方的原型声明来决定的!因此,你在一个.C模块中定义为volatile,仅仅是在

优化PHP代码的40条建议

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-11 06:00:08
转: 简介 英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHPer指正。 1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2.echo 比 print 快。 3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。 4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。 5.注销那些不用的变量尤其是大数组,以便释放内存。 6.尽量避免使用__get,__set,__autoload。 7.require_once()代价昂贵。 8.在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。 9.如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 10.函数代替正则表达式完成相同功能。 11.str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。 12.如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。 13

Monkey环境搭建

点点圈 提交于 2020-03-11 05:40:13
一、Monkey 1)Monkey是什么? Monkey是SDK中附带的一个工具。是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 2)Monkey测试的目的? 该工具用于进行压力测试。然后开发人员结合monkey打印的日志、系统打印的日志和测试中出现的问题,更快的定位和解决运用存在的问题。 3)Monkey的特性? Monkey测试使用的事件流数据流是随机的,不能进行自定义;测试的对象仅为应用的程序包(apk);可对Monkey的对象,事件数量、类型、频率等进行设置。 二、环境搭建 1)安装JDK 先是下载JDK解压、安装: http://rj.baidu.com/soft/detail/14459.html?ald (jdk和jre安装在同一个文件下) 环境配置:JDK安装完成后在JAVA文件夹下产生两个文件夹,如图: 安装完成后,配置环境变量 计算机 → 属性 → 高级系统设置 → 高级 → 环境变量: 系统变量 → 新建 JAVA_HONE 变量。变量值填写jdk的安装目录(本人安装目录为:C:\Program Files\Java\jdk1.7.0_45) 系统变量 → Path

算法训练营:等式

浪尽此生 提交于 2020-03-11 05:39:57
题目: 描述 有n个变量和m个“相等”或“不相等”的约束条件,请你判定是否存在一种赋值方案满足所有m个约束条件。 输入 第一行一个整数T,表示数据组数。 接下来会有T组数据,对于每组数据: 第一行是两个整数n,m,表示变量个数和约束条件的个数。 接下来m行,每行三个整数a,b,e,表示第a个变量和第b个变量的关系: 若e=0则表示第a个变量不等于第b个变量; 若e=1则表示第a个变量等于第b个变量 输出 输出T行,第i行表示第i组数据的答案。若第i组数据存在一种方案则输出"Yes";否则输出"No"(不包括引号)。 输出样例1 2 5 5 1 2 1 2 3 1 3 4 1 1 4 1 2 5 0 3 3 1 2 1 2 3 1 1 3 0 输出样例1 Yes No 样例1解释 一共有2组数据。 对于第一组数据,有5个约束: 变量1=变量2 变量2=变量3 变量3=变量4 变量1=变量4 变量2≠变量5 显然我们可以令: 变量1=变量2=变量3=变量4=任意一个数值 变量5=任意一个和变量2不同的数值 故第一组数据输出"Yes"。 对于第二组数据,有3个约束: 变量1=变量2 变量2=变量3 变量1≠变量3 由前两个约束可推出变量1=变量3,但第三个约束表明变量1≠变量3,矛盾。 故第二组数据输出"No"。 限制 对于10%的数据,n,m ≤ 5,T ≤ 5; 对于50%的数据,n

优化PHP代码的40条建议

岁酱吖の 提交于 2020-03-11 05:14:02
1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2.echo 比 print 快。 3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。 4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。 5.注销那些不用的变量尤其是大数组,以便释放内存。 6.尽量避免使用__get,__set,__autoload。 7.require_once()代价昂贵。 8.在包含文件时使用完整路径,解析操作系统路径所需的时间会更少。 9.如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 10.函数代替正则表达式完成相同功能。 11.str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。 12.如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么可以考虑额外写一段替换代码,使得每次传递参数是一个字符,而不是只写一行代码接受数组作为查询和替换的参数。 13.使用选择分支语句(译注:即switch case)好于使用多个if,else if语句。 14.用@屏蔽错误消息的做法非常低效。 15.打开apache的mod_deflate模块。 16.数据库连接当使用完毕时应关掉。 17.