摘要:
输出: out found found 第二种比较常见的用法是找出所有匹配的串,如下: 输出:
阅读全文
posted @ 2017-01-25 20:59
zhjh256
阅读(183)
推荐(0)
摘要:
回调函数,也就是我们说实现观察者模式、异步编程的关键之处,在java中一般通过匿名类实现比较多,在c/c++中,除非使用正规的OO实现,有不少都采用函数指针的方式实现,尤其是有些情况下可能还不允许随便使用对象。其基本用法如下。 定义相关接口: 调用: 输出如下: oneonetwotwothreet
阅读全文
posted @ 2017-01-25 17:33
zhjh256
阅读(228)
推荐(0)
摘要:
先定义如下: ns.h 输出如下:
阅读全文
posted @ 2017-01-25 16:30
zhjh256
阅读(147)
推荐(0)
摘要:
visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind(可以分析内存潜在的泄露,如针对json-c/log4c进行分析),先记录。可参考如下: http://blog.csdn.net/clarstyle/a
阅读全文
posted @ 2017-01-25 15:53
zhjh256
阅读(256)
推荐(0)
摘要:
关于stdafx.h的解释,其实蛮多的,在vs中,既然创建c++工程的时候,默认会给生成main.cpp,并且自动包含了stdafx.h,而且stdafx.h不是c++标准的一部分,那么个人认为,理解stdafx.h最好的方式就是打开stdafx.h,看看里面到底有些什么应该更好。其中的内容如下:
阅读全文
posted @ 2017-01-25 15:43
zhjh256
阅读(307)
推荐(0)
摘要:
最近学习cpp(至于为什么,可参考http://www.cnblogs.com/zhjh256/p/6321972.html),c++标准库第二版5.8.2节的时候,发现c++有一个对应java ShutdownHook退出处理器的机制,atexit。可以在正常退出程序的时候调用注册的函数,如下所示
阅读全文
posted @ 2017-01-25 15:33
zhjh256
阅读(198)
推荐(0)
摘要:
在原来的公司,一般都是采用F5 BIG-IP作为前端负载均衡服务器,后端一般直接用LVS作为mysql的负载均衡机制(应用服务器之间一般采用自行开发的TCP通信机制,其内置了负载均衡和HA),实际用apache/nginx/haproxy作为前端负载均衡机制在生产里面基本上用的相对较少,且负载并不高
阅读全文
posted @ 2017-01-25 15:33
zhjh256
阅读(1373)
推荐(0)
摘要:
c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来、14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨越才能稳定和被大规模production使用。 关于c++ 11之前的两个常用线程库主要是pthre
阅读全文
posted @ 2017-01-25 08:39
zhjh256
阅读(170)
推荐(0)
摘要:
c++ 11也都支持lambda表达式了,看了这确实是有必要了。lambda主要用于一次性的回调代码段。 c++ lambda的语法格式: [ capture clause ] (parameters) -> return-type { definition of method } [捕获列表] (
阅读全文
posted @ 2017-01-25 08:08
zhjh256
阅读(200)
推荐(0)
摘要:
如果,一开始就从事dba和运维的专家们说他们有丰富的大型分布式系统架构设计经验,那纯属扯淡。除非,他们从是从开发专家或者架构师转型而来,那么他们才有资格说自己有丰富的大型分布式系统架构设计经验。 运维和数据库是很重要,但是他们必须依赖于上游产出的优质系统,上游做的不好,任凭你数据库如何优化、运维如何
阅读全文
posted @ 2017-01-25 07:44
zhjh256
阅读(244)
推荐(0)
摘要:
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
阅读全文
posted @ 2017-01-24 20:19
zhjh256
阅读(958)
推荐(0)
摘要:
前两周,因为框架parent工程的pom文件做了一点变更,然后在测试服务器进行maven install的时候,死都找不到新的依赖,都把nexus翻了个遍,确定是最新的了,就是download不下来,最后想到,会不会本地还是老的,结果一看,果然本地还是那个老的parent.pom,最后删除后,在ma
阅读全文
posted @ 2017-01-24 15:52
zhjh256
阅读(725)
推荐(0)
摘要:
为了更加直观的比较,好吧,我们选择以对象的初始化并add到list为例子。 首先,定义object如下: 测试代码: java: 好吧,cpp换成char*指针: 再测试,平均大约为46ms。还是比java慢啊。 再看大量代码中会用到的char[],如下: 再测试,平均大约为62ms。还是比java
阅读全文
posted @ 2017-01-24 15:28
zhjh256
阅读(308)
推荐(0)
摘要:
http://www.cnblogs.com/zhjh256/p/6346501.html讲述了基本的map操作,在测试的时候,发现-O0模式下,map的性能极为低下,与java相比相差了接近200倍。测试的逻辑如下: // map定义 map<int, FirstCPPCls*> mapStude
阅读全文
posted @ 2017-01-24 15:10
zhjh256
阅读(7315)
推荐(0)
摘要:
可以发现,binary部分占用的内存特别多,这一部分主要是connection的消耗+一些额外小部分的元数据。每个连接占用的内存可通过/proc/sys/net/ipv4/tcp_rmem得到,例如: [root@osm ~]# cat /proc/sys/net/ipv4/tcp_rmem4096
阅读全文
posted @ 2017-01-24 11:27
zhjh256
阅读(2819)
推荐(0)
摘要:
vc获取时间戳的代码如下: SYSTEMTIME st; char ts[GUID_LEN] = { 0 }; GetLocalTime(&st); // vc专用 _snprintf_s(ts, sizeof(ts), "%4d-%02d-%2d %02d:%02d:%02d %03d", st.
阅读全文
posted @ 2017-01-24 11:22
zhjh256
阅读(1113)
推荐(0)
摘要:
map作为最常用的数据结构之一,用的好可以大幅度的提升性能。 更多可参考http://blog.sina.com.cn/s/blog_a9303fd9010195hm.html。
阅读全文
posted @ 2017-01-24 10:00
zhjh256
阅读(287)
推荐(0)
摘要:
代码格式化 1、选中代码; 2、ctrl+K; 3、ctrl+F; 显示行号
阅读全文
posted @ 2017-01-24 08:58
zhjh256
阅读(224)
推荐(0)
摘要:
简单地说, cpp中的纯虚函数就是抽象类的具体实现。包含了纯虚函数的类就是抽象类。
阅读全文
posted @ 2017-01-23 16:58
zhjh256
阅读(215)
推荐(0)
摘要:
从正规的血统上来说,c++跟java一样是面向对象编程语言,而c是面向结构的编程语言。但是,在现实中,有大量的系统虽然用cpp编写,但是100%跟java一样,使用面向对象的几乎没有,绝大部分都是结合体,所以,作为一个恰当的比喻,我们可以说面向对象是概念车,而对象、类则是量产车。典型的,标准库,c+
阅读全文
posted @ 2017-01-23 10:56
zhjh256
阅读(214)
推荐(0)
摘要:
最近在有思考到序列化性能优化的问题,关于java反射field和method的顺序问题,这里有详细的讨论http://stackoverflow.com/questions/5001172/java-reflection-getting-fields-and-methods-in-declarati
阅读全文
posted @ 2017-01-22 20:53
zhjh256
阅读(555)
推荐(0)
摘要:
以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B。 IP头部: TCP头部: http://blog.163.com/tianshuai11@126/blog/static/618945432
阅读全文
posted @ 2017-01-22 17:34
zhjh256
阅读(8743)
推荐(0)
摘要:
有些时候,测试网络应用时,为了开发方便,我们会在本机同时开启客户端和测试端,对于第三方的库来说,因为不能debug,可能需要通过抓包进行分析,今天用wireshark根据端口抓包的时候,发现怎么都下不来,网上搜了下,wireshark不支持在某些系统下抓本地的包,参考:http://www.bubu
阅读全文
posted @ 2017-01-22 17:17
zhjh256
阅读(805)
推荐(0)
摘要:
就网络抓包来说,绝大部分的情况下,我们都是对特定的ip/端口/协议进行捕获和分析,否则就会有大量的垃圾报文,使得分析和性能低下。大部分的抓包工具都采用BPF语法,具体可参考http://biot.com/capstats/bpf.html。好像没有一个官方地址说明完整的。 就学习网络报文而言,一般使
阅读全文
posted @ 2017-01-22 16:27
zhjh256
阅读(989)
推荐(0)
摘要:
最近,在开发一个伪代码翻译工具的过程中,遇到个问题,我们在伪代码中使用spring EL的规则,将非变量限定在${"1"}中,解析后根据上下文的类型转换为相应的java类型。在规则上,我们原先要求op1 op op2之间必须有空格,但是后来发现,有些地方仍然存在着操作符和操作数之间没有空格的情况,为
阅读全文
posted @ 2017-01-22 16:08
zhjh256
阅读(2189)
推荐(0)
摘要:
从2014年开始,笔者所在公司就和阿里云开始沟通支持组播,不过好像至今为止,目前仍然没有支持组播(参见https://www.oschina.net/question/62530_2134183),使得jgroups没法使用,进一步导致在大规模的分布式系统中,节点的加入和退出依赖于人工通过unica
阅读全文
posted @ 2017-01-21 21:24
zhjh256
阅读(1444)
推荐(0)
摘要:
首先、如果是运行在internet上的系统,并且如果是个涉及到利益性的系统,不可避免的会遭受各种攻击(我们公司的很多系统从OS到DB到webapp就实时有收到攻击和破解),所以尽可能保证安全性将不再是架构师和安全部门唯一应该考虑的事,所有的开发、运维都应该有相应的安全意识。在文本中,将普及下java
阅读全文
posted @ 2017-01-21 15:51
zhjh256
阅读(2298)
推荐(1)
摘要:
在很多系统(包括金融类和非金融类)中,其实有大量的系统在很长的一段时间内(具体多长时间视业务的成功与否而定)都是混合型系统,也就是同时具有OLTP+OLAP的业务。我们说任何形式的存在在特定阶段都是合理的,这无可厚非,但是对于明知会发生但仅仅只是时间问题的那些问题,如果不吸取以前的经验教训,仅仅是为
阅读全文
posted @ 2017-01-20 12:34
zhjh256
阅读(249)
推荐(0)
摘要:
作为从业人员,如果一定要学一门新的编程语言,那么它一定是c++。 无论各种编程语言排行榜如何变化,什么语言最赚钱,想成为真正的程序员,那么c/c++是必修课,因为几乎所有的底层都是c/c++编写的,各种VM最后也是用c/c++写成的,编程思想非常的重要,但是精通c/c++将是你无论作为java/go
阅读全文
posted @ 2017-01-20 10:05
zhjh256
阅读(213)
推荐(0)
摘要:
最近,有个开发提了个需求,希望中间件支持调用mysql存储过程时支持多结果集返回,因为某些原因我们使用了不少的存储过程,很多复杂的逻辑目前来看交互非常的多,所以从当前的现状来说,这个需求还是蛮合理的。中午抽空特地搜了下,整合完整示例如下: 1、创建测试存储过程 2、mapper文件 3、java代码
阅读全文
posted @ 2017-01-19 13:39
zhjh256
阅读(2481)
推荐(0)
摘要:
在最近的计划中,打算看看在不使用google protobuf的情况下,在原有的采用jackson作为json序列化工具的基础上,是否可以实现进一步的性能优化。主要是针对list的情况,在一些包含比较大的对象比如有上百个对象的列表序列化、反序列化的逻辑中,有一个序列化+反序列化操作,他们加起来时间占
阅读全文
posted @ 2017-01-19 12:24
zhjh256
阅读(1339)
推荐(0)
摘要:
在windows下,如果vm文件名为UTF-8格式,则显示乱码(velocity写出的不乱码): 改回GBK,则不再乱码。
阅读全文
posted @ 2017-01-18 21:48
zhjh256
阅读(216)
推荐(0)
摘要:
怎么说, 开发会很乐意去主动修改bug? 一图顶上千言万语,如下:
阅读全文
posted @ 2017-01-18 12:45
zhjh256
阅读(134)
推荐(0)
摘要:
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 这个工具对于在运维、持续集成和批处理场景中是非常常用的,之前用都是在linux下用,windows下基本上没怎么用,特地搜了下,windo
阅读全文
posted @ 2017-01-18 12:40
zhjh256
阅读(247)
推荐(0)
摘要:
在mariadb 10.1版本中,在information_schema.processlist表中,新增了几个字段,其中有一个memory_used,其记录的是连接的内存消耗。 同时新增了一个状态变量memory_used,其记录的应该是所有连接加起来消耗的内存(官方并没有特别详细地解释https
阅读全文
posted @ 2017-01-18 08:47
zhjh256
阅读(753)
推荐(0)
摘要:
最近,和有些猎头沟通时,他们提到RSU的概念,特地搜了下,其和股票期权(Stock Option)差别如下: RSU 和Option 一般都是逐年实现的,比如Offer Letter签三年,上写的给你1000股,第一年能给你25%第二年给40%,第三年给35%。 RSU是实在的股票,即当你获得股票以
阅读全文
posted @ 2017-01-18 08:09
zhjh256
阅读(7612)
推荐(0)
摘要:
还是因为那个8点半前要启动近百套报盘程序的问题,差不多两周前表示自己会抽空给解决掉,一次性启动,直到昨天才差不多能够抽点时间出来开始想怎么解决的问题。 这个问题的复杂点在于除了启动exe外,还需要鼠标点击界面上的登录并输入用户名密码,然后选择通道进行启动,一个程序可能会有多个通道。其次,它是用vc
阅读全文
posted @ 2017-01-18 08:01
zhjh256
阅读(278)
推荐(0)
摘要:
对于linux中的上下文一直以来没有特别的关注其合理范围应该是多少(关于上下文切换的概念,网上已经有很多解释了,再次不再重复),白天偶尔注意到了一下,晚上特地看了下白天负载和和收盘后的负载如下(服务器1,8C/16GB,运行1个mysql,8个java进程,1个rabbitmq): 相应时间段的上下
阅读全文
posted @ 2017-01-17 21:38
zhjh256
阅读(935)
推荐(0)
摘要:
今天,在写个批量启动报盘机的自动化应用,为了简化起见,将配置信息存储在xml中,格式如下: <?xml version="1.0" encoding="UTF-8"?><server tradeName="证券" operatorNo=" " operatorPassword=" " path="X
阅读全文
posted @ 2017-01-17 21:14
zhjh256
阅读(2055)
推荐(0)
摘要:
今天在使用两个BigDecimal类型的数字做除法运算时,出现了一个如下的异常信息: 上网查了一下这个异常的,找到了原因所在:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-termi
阅读全文
posted @ 2017-01-16 11:26
zhjh256
阅读(492)
推荐(0)