01 2017 档案
摘要:对于面向对象而言,多态是最有用的基本特性之一,相对于函数指针,易用得多。下面看下c++继承和多态行为的基本特性,最后说明下和java的基本差别。 首先定义父类和子类。 base.h base.cpp Derived.h Derived.cpp 基本使用: 输出如下: 从上面的代码和结果可以看出,c+
阅读全文
摘要:从c++ 11开始,语言核心和标准库开始引入了对多线程的原生支持。 如下所示: int doSth(char c) { default_random_engine dre(c); uniform_int_distribution<int> id(10,10000); for(int i=0;i<10
阅读全文
摘要:首先要来说一说字符集和编码的关系,这两者既有交叉、又有异同。https://www.runoob.com/w3cnote/charset-encoding.html、https://blog.csdn.net/weixin_44198965/article/details/93125017。简单可以
阅读全文
摘要:c++生成随机整数和浮点数如下: 输出如下: 还可以使用标准C的rand,如下: 输出如下: 关于使用随机数引擎还是rand()函数的问题,在C++标准库第二版17.1.1看到如下说明:
阅读全文
摘要:输出: out found found 第二种比较常见的用法是找出所有匹配的串,如下: 输出:
阅读全文
摘要:回调函数,也就是我们说实现观察者模式、异步编程的关键之处,在java中一般通过匿名类实现比较多,在c/c++中,除非使用正规的OO实现,有不少都采用函数指针的方式实现,尤其是有些情况下可能还不允许随便使用对象。其基本用法如下。 定义相关接口: 调用: 输出如下: oneonetwotwothreet
阅读全文
摘要:visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind(可以分析内存潜在的泄露,如针对json-c/log4c进行分析),先记录。可参考如下: http://blog.csdn.net/clarstyle/a
阅读全文
摘要:关于stdafx.h的解释,其实蛮多的,在vs中,既然创建c++工程的时候,默认会给生成main.cpp,并且自动包含了stdafx.h,而且stdafx.h不是c++标准的一部分,那么个人认为,理解stdafx.h最好的方式就是打开stdafx.h,看看里面到底有些什么应该更好。其中的内容如下:
阅读全文
摘要:最近学习cpp(至于为什么,可参考http://www.cnblogs.com/zhjh256/p/6321972.html),c++标准库第二版5.8.2节的时候,发现c++有一个对应java ShutdownHook退出处理器的机制,atexit。可以在正常退出程序的时候调用注册的函数,如下所示
阅读全文
摘要:在原来的公司,一般都是采用F5 BIG-IP作为前端负载均衡服务器,后端一般直接用LVS作为mysql的负载均衡机制(应用服务器之间一般采用自行开发的TCP通信机制,其内置了负载均衡和HA),实际用apache/nginx/haproxy作为前端负载均衡机制在生产里面基本上用的相对较少,且负载并不高
阅读全文
摘要:c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来、14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨越才能稳定和被大规模production使用。 关于c++ 11之前的两个常用线程库主要是pthre
阅读全文
摘要:c++ 11也都支持lambda表达式了,看了这确实是有必要了。lambda主要用于一次性的回调代码段。 c++ lambda的语法格式: [ capture clause ] (parameters) -> return-type { definition of method } [捕获列表] (
阅读全文
摘要:如果,一开始就从事dba和运维的专家们说他们有丰富的大型分布式系统架构设计经验,那纯属扯淡。除非,他们从是从开发专家或者架构师转型而来,那么他们才有资格说自己有丰富的大型分布式系统架构设计经验。 运维和数据库是很重要,但是他们必须依赖于上游产出的优质系统,上游做的不好,任凭你数据库如何优化、运维如何
阅读全文
摘要:INFO | jvm 1 | 2017/01/24 18:02:15 | Tue Jan 24 18:02:15 CST 2017 WARN: Establishing SSL connection without server's identity verification is not reco
阅读全文
摘要:前两周,因为框架parent工程的pom文件做了一点变更,然后在测试服务器进行maven install的时候,死都找不到新的依赖,都把nexus翻了个遍,确定是最新的了,就是download不下来,最后想到,会不会本地还是老的,结果一看,果然本地还是那个老的parent.pom,最后删除后,在ma
阅读全文
摘要:为了更加直观的比较,好吧,我们选择以对象的初始化并add到list为例子。 首先,定义object如下: 测试代码: java: 好吧,cpp换成char*指针: 再测试,平均大约为46ms。还是比java慢啊。 再看大量代码中会用到的char[],如下: 再测试,平均大约为62ms。还是比java
阅读全文
摘要:http://www.cnblogs.com/zhjh256/p/6346501.html讲述了基本的map操作,在测试的时候,发现-O0模式下,map的性能极为低下,与java相比相差了接近200倍。测试的逻辑如下: // map定义 map<int, FirstCPPCls*> mapStude
阅读全文
摘要:可以发现,binary部分占用的内存特别多,这一部分主要是connection的消耗+一些额外小部分的元数据。每个连接占用的内存可通过/proc/sys/net/ipv4/tcp_rmem得到,例如: [root@osm ~]# cat /proc/sys/net/ipv4/tcp_rmem4096
阅读全文
摘要:vc获取时间戳的代码如下: SYSTEMTIME st; char ts[GUID_LEN] = { 0 }; GetLocalTime(&st); // vc专用 _snprintf_s(ts, sizeof(ts), "%4d-%02d-%2d %02d:%02d:%02d %03d", st.
阅读全文
摘要:map作为最常用的数据结构之一,用的好可以大幅度的提升性能。 更多可参考http://blog.sina.com.cn/s/blog_a9303fd9010195hm.html。
阅读全文
摘要:代码格式化 1、选中代码; 2、ctrl+K; 3、ctrl+F; 显示行号
阅读全文
摘要:简单地说, cpp中的纯虚函数就是抽象类的具体实现。包含了纯虚函数的类就是抽象类。
阅读全文
摘要:从正规的血统上来说,c++跟java一样是面向对象编程语言,而c是面向结构的编程语言。但是,在现实中,有大量的系统虽然用cpp编写,但是100%跟java一样,使用面向对象的几乎没有,绝大部分都是结合体,所以,作为一个恰当的比喻,我们可以说面向对象是概念车,而对象、类则是量产车。典型的,标准库,c+
阅读全文
摘要:最近在有思考到序列化性能优化的问题,关于java反射field和method的顺序问题,这里有详细的讨论http://stackoverflow.com/questions/5001172/java-reflection-getting-fields-and-methods-in-declarati
阅读全文
摘要:以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B。 IP头部: TCP头部: http://blog.163.com/tianshuai11@126/blog/static/618945432
阅读全文
摘要:有些时候,测试网络应用时,为了开发方便,我们会在本机同时开启客户端和测试端,对于第三方的库来说,因为不能debug,可能需要通过抓包进行分析,今天用wireshark根据端口抓包的时候,发现怎么都下不来,网上搜了下,wireshark不支持在某些系统下抓本地的包,参考:http://www.bubu
阅读全文
摘要:就网络抓包来说,绝大部分的情况下,我们都是对特定的ip/端口/协议进行捕获和分析,否则就会有大量的垃圾报文,使得分析和性能低下。大部分的抓包工具都采用BPF语法,具体可参考http://biot.com/capstats/bpf.html。好像没有一个官方地址说明完整的。 就学习网络报文而言,一般使
阅读全文
摘要:最近,在开发一个伪代码翻译工具的过程中,遇到个问题,我们在伪代码中使用spring EL的规则,将非变量限定在${"1"}中,解析后根据上下文的类型转换为相应的java类型。在规则上,我们原先要求op1 op op2之间必须有空格,但是后来发现,有些地方仍然存在着操作符和操作数之间没有空格的情况,为
阅读全文
摘要:从2014年开始,笔者所在公司就和阿里云开始沟通支持组播,不过好像至今为止,目前仍然没有支持组播(参见https://www.oschina.net/question/62530_2134183),使得jgroups没法使用,进一步导致在大规模的分布式系统中,节点的加入和退出依赖于人工通过unica
阅读全文
摘要:首先、如果是运行在internet上的系统,并且如果是个涉及到利益性的系统,不可避免的会遭受各种攻击(我们公司的很多系统从OS到DB到webapp就实时有收到攻击和破解),所以尽可能保证安全性将不再是架构师和安全部门唯一应该考虑的事,所有的开发、运维都应该有相应的安全意识。在文本中,将普及下java
阅读全文
摘要:在很多系统(包括金融类和非金融类)中,其实有大量的系统在很长的一段时间内(具体多长时间视业务的成功与否而定)都是混合型系统,也就是同时具有OLTP+OLAP的业务。我们说任何形式的存在在特定阶段都是合理的,这无可厚非,但是对于明知会发生但仅仅只是时间问题的那些问题,如果不吸取以前的经验教训,仅仅是为
阅读全文
摘要:作为从业人员,如果一定要学一门新的编程语言,那么它一定是c++。 无论各种编程语言排行榜如何变化,什么语言最赚钱,想成为真正的程序员,那么c/c++是必修课,因为几乎所有的底层都是c/c++编写的,各种VM最后也是用c/c++写成的,编程思想非常的重要,但是精通c/c++将是你无论作为java/go
阅读全文
摘要:最近,有个开发提了个需求,希望中间件支持调用mysql存储过程时支持多结果集返回,因为某些原因我们使用了不少的存储过程,很多复杂的逻辑目前来看交互非常的多,所以从当前的现状来说,这个需求还是蛮合理的。中午抽空特地搜了下,整合完整示例如下: 1、创建测试存储过程 2、mapper文件 3、java代码
阅读全文
摘要:在最近的计划中,打算看看在不使用google protobuf的情况下,在原有的采用jackson作为json序列化工具的基础上,是否可以实现进一步的性能优化。主要是针对list的情况,在一些包含比较大的对象比如有上百个对象的列表序列化、反序列化的逻辑中,有一个序列化+反序列化操作,他们加起来时间占
阅读全文
摘要:在windows下,如果vm文件名为UTF-8格式,则显示乱码(velocity写出的不乱码): 改回GBK,则不再乱码。
阅读全文
摘要:怎么说, 开发会很乐意去主动修改bug? 一图顶上千言万语,如下:
阅读全文
摘要:curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 这个工具对于在运维、持续集成和批处理场景中是非常常用的,之前用都是在linux下用,windows下基本上没怎么用,特地搜了下,windo
阅读全文
摘要:在mariadb 10.1版本中,在information_schema.processlist表中,新增了几个字段,其中有一个memory_used,其记录的是连接的内存消耗。 同时新增了一个状态变量memory_used,其记录的应该是所有连接加起来消耗的内存(官方并没有特别详细地解释https
阅读全文
摘要:最近,和有些猎头沟通时,他们提到RSU的概念,特地搜了下,其和股票期权(Stock Option)差别如下: RSU 和Option 一般都是逐年实现的,比如Offer Letter签三年,上写的给你1000股,第一年能给你25%第二年给40%,第三年给35%。 RSU是实在的股票,即当你获得股票以
阅读全文
摘要:还是因为那个8点半前要启动近百套报盘程序的问题,差不多两周前表示自己会抽空给解决掉,一次性启动,直到昨天才差不多能够抽点时间出来开始想怎么解决的问题。 这个问题的复杂点在于除了启动exe外,还需要鼠标点击界面上的登录并输入用户名密码,然后选择通道进行启动,一个程序可能会有多个通道。其次,它是用vc
阅读全文
摘要:对于linux中的上下文一直以来没有特别的关注其合理范围应该是多少(关于上下文切换的概念,网上已经有很多解释了,再次不再重复),白天偶尔注意到了一下,晚上特地看了下白天负载和和收盘后的负载如下(服务器1,8C/16GB,运行1个mysql,8个java进程,1个rabbitmq): 相应时间段的上下
阅读全文
摘要:今天,在写个批量启动报盘机的自动化应用,为了简化起见,将配置信息存储在xml中,格式如下: <?xml version="1.0" encoding="UTF-8"?><server tradeName="证券" operatorNo=" " operatorPassword=" " path="X
阅读全文
摘要:今天在使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息: 上网查了一下这个异常的,找到了原因所在:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-termi
阅读全文
摘要:ssl的实现除了openssl外,还有gnussl,mozilla。 一般来说,配置HTTPS/SSL的步骤为: 1、生成足够强度的私钥。需要考虑:算法,广泛采用的一般是RSA。键长度,RSA默认为512,一般应选择2048。密码,虽然私钥不一定要加密存储,但是加密存储使得拿到私钥也没法直接使用。
阅读全文
摘要:在不少的情况下,我们需要对生产中的系统进行问题排查,但是又不能重启应用,java应用不同于数据库的存储过程,至少到目前为止,还不能原生的支持随时进行编译替换,从这种角度来说,数据库比java的动态性要好得多,而且其随时编译的性能也比其他解释性语言的性能要好的多。虽然如此,我们绝大部分应用都使用jav
阅读全文
摘要:最好用的mongodb GUI工具 mongobooster,没有之一,可从https://mongobooster.com/下载 支持json、tree、table三种展现形式。 对于非易变,但是仅仅是为了利用mongodb弱模式化特性的系统,table展现方式可以和RDBMS一样易读,pl/sq
阅读全文
摘要:通常来说,我们应该使用应用的特性而不是自己的爱好或者规定而去选择一种合适的组件,选择的标准应该是这个组件最适合或者本身其设计就是为了解决这个问题,而不是这个组件能够做这事情为标准。就拿存储来说,任何时候,我们都有至少文本文件、SQL数据库、文档数据库或者k/v方式来实现。在我们的一个监控MQ积压的系
阅读全文
摘要:今天某个环境发生了这个bug。 http://bugs.mysql.com/bug.php?id=72123
阅读全文
摘要:[root@sdw ~]# mkdir /var/log/history[root@sdw ~]# chmod 777 /var/log/history 编辑/etc/profile文件,在文件末尾加入下面代码: [root@iZ23nn1p4mjZ root]# vi /etc/profile h
阅读全文
摘要:关于使用HTTPS/SSL的必要性,可以自行baidu,援引的说法,EFF(Electronic Frontier Foundation),全球过半流量采用https。 https://www.oschina.net/news/82222/https-web 关于SSL的握手过程,简单的来说,如下,
阅读全文
摘要:以前基本上笔者对于安全性考虑的并不多,最近因为saas平台要开始逐渐推广,所以需要开始逐渐加强xss/crsf/https等措施以避免潜在的安全性风险。本文简单的记录下tomcat下https的配置。 注意:在实际的系统中,很少会直接在tomcat上配置https对外提供服务,一般是通过在nginx
阅读全文
摘要:最近,我们有个大调整,为了控制代码的质量,需要使用一些伪代码让业务人员编写应用逻辑(其实这么做完全是处于研发效能的考虑,95%以上的代码不需要特别注意都不会导致系统性风险,),然后通过工具自动生成实际的java和SQL代码,其中有个关键点就是处理其中的变量和参数,我们使用了特定的模式进行处理,典型的
阅读全文
摘要:最近有些软件要求glibc 2.14+,centos 6.x自带的版本是2.12的,7.6默认是2.17,特查了下glibc 各版本发布时间以及与对应的内核,如下: Complete glibc release history: Date Release Announcement 2017-08-0
阅读全文
摘要:一般来说,为了保险起见,在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,执行 set global sql_slave_skip_counter=1以跳过命令。但在测试和开发环境下,有时候为了快速解决不影响开发,需要使用set global sql_slave_
阅读全文
摘要:最近,我们在券商端的mysql运行一段时间后,发生mysql can't create threads in threadpool,如下所示: 据官网一个报告显示,目测是一个bug,内存紧张导致,那天也没及时看,明后天再观察看看,现在是没有问题了。
阅读全文
摘要:其含义为 The default value is full. In MySQL 5.5 and earlier, full row images are always used for both before images and after images. If you need to repl
阅读全文
摘要:最近有两三套环境升级到了5.7.16,发现mysql.err中的时间好像有些问题,经查是mysql 5.7后的变更,如下: root@localhost [(none)]>select now();+ +| now() |+ +| 2017-01-01 14:52:05 |+ +1 row in s
阅读全文
摘要:今天有个应用一直起不来,感觉配置都对啊,奇了怪了。看日志发现如下: STATUS | wrapper | 2017/01/04 08:09:31 | Launching a JVM...INFO | jvm 7 | 2017/01/04 08:09:32 | Error: Exception thr
阅读全文
摘要:今天,有个给客户试用的环境出现xinetd cpu 100%,而且连续运行很长时间了。之前也有环境发生过,今天排查解决了三四个问题,实在是查的身体都不舒服了,还没时间查这个问题。。。 知道的求解。。。
阅读全文
摘要:今天有个环境ajax调用一个请求的时候,出现一个504 gateway time-out响应,原以为是nginx找不到资源的问题,恰当我们的服务器上又配置了nginx,看了配置文件,没有指向tomcat的配置。 后来仔细查下来,发现是tomcat调用中间件,但后台请求一直在执行,没有返回的原因,也没
阅读全文
摘要:首先,还是要说,任何一种新特性的引入,通常有着其特有的场景和解决的目标需求,localstorage也一样。在我们的应用场景中,主要在金融业务服务的saas系统。其中涉及很多更改频率很多的元数据的客户端缓存问题,这是我们使用它的一个关键因素,document之间的传递则不是我们选择它的原因,因为我们
阅读全文
浙公网安备 33010602011771号