上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 27 下一页
摘要: 晚上,在测试tinyxml的时候,发现其中声明了<?xml version="1.0" standalone="no" ?>,经查,其含义为standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表 阅读全文
posted @ 2017-02-03 21:04 zhjh256 阅读(1253) 评论(1) 推荐(1) 编辑
摘要: 如同linux下通常要求安装特定版本的libstdc++一样,windows下vc++生成的exe发布时的依赖dll问题,可以参见帖子,http://bbs.csdn.net/topics/391052257,这个帖子应该来说已经很清晰的说明了如何分发的问题。 需要注意的是生成的dll/lib是32 阅读全文
posted @ 2017-02-03 19:41 zhjh256 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 今天早上,java应用中发现too many open files,检查了下使用的连接数发现基本上在两三百左右,mysql打开的文件数也就几百左右,再看所有tcp连接,发现3306的连接有4000多,且状态为time_wait,time_wait发生在tcp连接关闭的阶段如下所示: 到11:30分收 阅读全文
posted @ 2017-02-03 19:18 zhjh256 阅读(709) 评论(0) 推荐(0) 编辑
摘要: log4cpp,http://log4cpp.sourceforge.net/,跟log4j一样,不说最重要,绝对是最常用的。 zk 客户端,https://blog.csdn.net/yangzhen92/article/details/53248294 memcached,libmemcache 阅读全文
posted @ 2017-02-03 19:02 zhjh256 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 早上一运维同事说,一个报盘程序启动的时候报了"ESOURCE_LOCKED - cannot obtain exclusive access to locked queue '2484_0_00163'",因为之前一直不管报盘的事情,后面仔细看了下,这个错误应该不是开发自己加上的,搜了下,是两个不同 阅读全文
posted @ 2017-02-03 09:15 zhjh256 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 春节放假期间,一直在学习c++,越想越发现c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现 阅读全文
posted @ 2017-02-03 08:00 zhjh256 阅读(144) 评论(0) 推荐(0) 编辑
摘要: const_cast 用于去掉const属性,把const类型的指针变为非const类型的指针,如:const int *fun(int x,int y){} int *ptr=const_cast<int *>(fun(2.3)) dynamic_cast 该操作符用于运行时检查该转换是否类型安全 阅读全文
posted @ 2017-02-03 07:28 zhjh256 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 在java中,我们知道除了public和private,protected外,还有默认的包可见性访问级别,虽然如此,很多时候出于早期设计缺陷的原因,我们需要访问一些包或者protected可见性级别的方法,这个时候就比较麻烦了,要是选择和目标服务在相同包中,总看起来很奇怪,如果作为子类继承,则更加奇 阅读全文
posted @ 2017-02-02 21:39 zhjh256 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 久而久之,发现c/c++的typedef给类型自定义别名的语法糖就保证设计的一致性而言,确实是个相当不错的特性,跟oracle pl/sql的rowtype或type一样,可惜java、mysql均不支持。 阅读全文
posted @ 2017-02-02 20:10 zhjh256 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 或许是基于一直以来c/c++头文件声明和cXX实现物理上置于独立文件的考虑,c++中的OO在现实中基本上也是按照声明和实现分离的方式进行管理和编译,如下所示: Base.h Base.cpp 分发给客户的时候,我们只要提供Base.h和Base.cpp编译后的so或者a即可。如下: 相较于于java 阅读全文
posted @ 2017-02-02 19:16 zhjh256 阅读(239) 评论(0) 推荐(0) 编辑
摘要: c标准中包含了一个sleep用以实现当前线程暂停执行n毫秒,如下所示: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中需要带上头文件 include <Windows.h> //没有<unistd.h> Sle 阅读全文
posted @ 2017-02-02 19:03 zhjh256 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 默认情况下,如果没有明确声明某些函数比如赋值、拷贝函数,c++会自动生成这些函数,通常他们是对成员进行by-value拷贝。如下: 有些时候,赋值、拷贝对象并无什么意义或者不合理,比如对于socket或者thread而言,这种情况下,可以明确通过指定=delete告知编译器不要自动生成它们。如下所示 阅读全文
posted @ 2017-02-02 18:40 zhjh256 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 对于面向对象而言,多态是最有用的基本特性之一,相对于函数指针,易用得多。下面看下c++继承和多态行为的基本特性,最后说明下和java的基本差别。 首先定义父类和子类。 base.h base.cpp Derived.h Derived.cpp 基本使用: 输出如下: 从上面的代码和结果可以看出,c+ 阅读全文
posted @ 2017-01-26 13:59 zhjh256 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 从c++ 11开始,语言核心和标准库开始引入了对多线程的原生支持。如下所示: int doSth(char c) { default_random_engine dre(c); uniform_int_distribution<int> id(10,10000); for(int i=0;i<10; 阅读全文
posted @ 2017-01-26 10:21 zhjh256 阅读(1160) 评论(0) 推荐(1) 编辑
摘要: 首先要来说一说字符集和编码的关系,这两者既有交叉、又有异同。https://www.runoob.com/w3cnote/charset-encoding.html、https://blog.csdn.net/weixin_44198965/article/details/93125017。简单可以 阅读全文
posted @ 2017-01-26 09:13 zhjh256 阅读(481) 评论(0) 推荐(0) 编辑
摘要: c++生成随机整数和浮点数如下: 输出如下: 还可以使用标准C的rand,如下: 输出如下: 关于使用随机数引擎还是rand()函数的问题,在C++标准库第二版17.1.1看到如下说明: 阅读全文
posted @ 2017-01-26 09:10 zhjh256 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 输出: out found found 第二种比较常见的用法是找出所有匹配的串,如下: 输出: 阅读全文
posted @ 2017-01-25 20:59 zhjh256 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 回调函数,也就是我们说实现观察者模式、异步编程的关键之处,在java中一般通过匿名类实现比较多,在c/c++中,除非使用正规的OO实现,有不少都采用函数指针的方式实现,尤其是有些情况下可能还不允许随便使用对象。其基本用法如下。 定义相关接口: 调用: 输出如下: oneonetwotwothreet 阅读全文
posted @ 2017-01-25 17:33 zhjh256 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 先定义如下: ns.h 输出如下: 阅读全文
posted @ 2017-01-25 16:30 zhjh256 阅读(138) 评论(0) 推荐(0) 编辑
摘要: visual studio有自带的,可以看MSDN,不过一般来说,我们比较关注linux下的,搜了下,比较好用的应该有gprof和valgrind(可以分析内存潜在的泄露,如针对json-c/log4c进行分析),先记录。可参考如下: http://blog.csdn.net/clarstyle/a 阅读全文
posted @ 2017-01-25 15:53 zhjh256 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 关于stdafx.h的解释,其实蛮多的,在vs中,既然创建c++工程的时候,默认会给生成main.cpp,并且自动包含了stdafx.h,而且stdafx.h不是c++标准的一部分,那么个人认为,理解stdafx.h最好的方式就是打开stdafx.h,看看里面到底有些什么应该更好。其中的内容如下: 阅读全文
posted @ 2017-01-25 15:43 zhjh256 阅读(278) 评论(0) 推荐(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 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 在原来的公司,一般都是采用F5 BIG-IP作为前端负载均衡服务器,后端一般直接用LVS作为mysql的负载均衡机制(应用服务器之间一般采用自行开发的TCP通信机制,其内置了负载均衡和HA),实际用apache/nginx/haproxy作为前端负载均衡机制在生产里面基本上用的相对较少,且负载并不高 阅读全文
posted @ 2017-01-25 15:33 zhjh256 阅读(1330) 评论(0) 推荐(0) 编辑
摘要: c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来、14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨越才能稳定和被大规模production使用。 关于c++ 11之前的两个常用线程库主要是pthre 阅读全文
posted @ 2017-01-25 08:39 zhjh256 阅读(157) 评论(0) 推荐(0) 编辑
摘要: c++ 11也都支持lambda表达式了,看了这确实是有必要了。lambda主要用于一次性的回调代码段。 c++ lambda的语法格式: [ capture clause ] (parameters) -> return-type { definition of method } [捕获列表] ( 阅读全文
posted @ 2017-01-25 08:08 zhjh256 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 如果,一开始就从事dba和运维的专家们说他们有丰富的大型分布式系统架构设计经验,那纯属扯淡。除非,他们从是从开发专家或者架构师转型而来,那么他们才有资格说自己有丰富的大型分布式系统架构设计经验。 运维和数据库是很重要,但是他们必须依赖于上游产出的优质系统,上游做的不好,任凭你数据库如何优化、运维如何 阅读全文
posted @ 2017-01-25 07:44 zhjh256 阅读(230) 评论(0) 推荐(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 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 前两周,因为框架parent工程的pom文件做了一点变更,然后在测试服务器进行maven install的时候,死都找不到新的依赖,都把nexus翻了个遍,确定是最新的了,就是download不下来,最后想到,会不会本地还是老的,结果一看,果然本地还是那个老的parent.pom,最后删除后,在ma 阅读全文
posted @ 2017-01-24 15:52 zhjh256 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 为了更加直观的比较,好吧,我们选择以对象的初始化并add到list为例子。 首先,定义object如下: 测试代码: java: 好吧,cpp换成char*指针: 再测试,平均大约为46ms。还是比java慢啊。 再看大量代码中会用到的char[],如下: 再测试,平均大约为62ms。还是比java 阅读全文
posted @ 2017-01-24 15:28 zhjh256 阅读(285) 评论(0) 推荐(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 阅读(7199) 评论(3) 推荐(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 阅读(2776) 评论(1) 推荐(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 阅读(1100) 评论(0) 推荐(0) 编辑
摘要: map作为最常用的数据结构之一,用的好可以大幅度的提升性能。 更多可参考http://blog.sina.com.cn/s/blog_a9303fd9010195hm.html。 阅读全文
posted @ 2017-01-24 10:00 zhjh256 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 代码格式化 1、选中代码; 2、ctrl+K; 3、ctrl+F; 显示行号 阅读全文
posted @ 2017-01-24 08:58 zhjh256 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 简单地说, cpp中的纯虚函数就是抽象类的具体实现。包含了纯虚函数的类就是抽象类。 阅读全文
posted @ 2017-01-23 16:58 zhjh256 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 从正规的血统上来说,c++跟java一样是面向对象编程语言,而c是面向结构的编程语言。但是,在现实中,有大量的系统虽然用cpp编写,但是100%跟java一样,使用面向对象的几乎没有,绝大部分都是结合体,所以,作为一个恰当的比喻,我们可以说面向对象是概念车,而对象、类则是量产车。典型的,标准库,c+ 阅读全文
posted @ 2017-01-23 10:56 zhjh256 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 最近在有思考到序列化性能优化的问题,关于java反射field和method的顺序问题,这里有详细的讨论http://stackoverflow.com/questions/5001172/java-reflection-getting-fields-and-methods-in-declarati 阅读全文
posted @ 2017-01-22 20:53 zhjh256 阅读(535) 评论(0) 推荐(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 阅读(8427) 评论(0) 推荐(0) 编辑
摘要: 有些时候,测试网络应用时,为了开发方便,我们会在本机同时开启客户端和测试端,对于第三方的库来说,因为不能debug,可能需要通过抓包进行分析,今天用wireshark根据端口抓包的时候,发现怎么都下不来,网上搜了下,wireshark不支持在某些系统下抓本地的包,参考:http://www.bubu 阅读全文
posted @ 2017-01-22 17:17 zhjh256 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 就网络抓包来说,绝大部分的情况下,我们都是对特定的ip/端口/协议进行捕获和分析,否则就会有大量的垃圾报文,使得分析和性能低下。大部分的抓包工具都采用BPF语法,具体可参考http://biot.com/capstats/bpf.html。好像没有一个官方地址说明完整的。 就学习网络报文而言,一般使 阅读全文
posted @ 2017-01-22 16:27 zhjh256 阅读(923) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 27 下一页