负责7K+应用,100K+机器的Spring Boot微服务技术落地,关注开发体验,微服务,APM,应用诊断技术。Dubbo/Arthas开源。 github: https://github.com/hengyunabc
ActiveMQ-WebConsole修复增强版 项目地址:https://github.com/hengyunabc/activemq-webconsole-enhanced 这个修复增强版基于ActiveMQ5.8.0:http://activemq.apache.org/activemq-580-release.html 。
下面收集一些个人觉得比较好的在线学习编程网站。当然用google搜索下,会有很多推荐。 update 2015-11-11 收集到几个做题网站 http://www.
update: 2016-10-18 在jdk7之后,有一个jcmd的工具,可以来启动jmx: ManagementAgent.stop ManagementAgent.start_local ManagementAgent.start 参考:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html --- 好久没写blog了,先来篇充充数。
前言: 本来想翻译这篇文章的(作者是utf-8编码,golang发明者之一): UTF-8: Bits, Bytes, and Benefits,http://research.swtch.com/utf8 一则翻译起来很痛苦,二则觉得这篇文章有些地方可能说得不是太明白,所以结合其它的一些东东扯谈下utf-8。
update: 2013-8-20 从pypy的博客上看,他们早已实现了STM版的pypy:http://morepypy.blogspot.com/2013/08/update-on-stm.html,不过,貌似还有很多问题。
写在前面的话 在C++11之后,std::bind是C++标准库的一个组件了。一开始想弄个C++11的实现来研究下,发现里面用到了可变参数模板(代码变得非常神奇). http://llvm.org/svn/llvm-project/libcxx/trunk/include/functional 还是弄个原始点的boost的实现来研究下。
话说像下面的语句,应该大家都明白这是通过重载operator
更新:2012-08-01 版本 2.16长时间运行可能会导致OOM,版本2.18有bug,不能正确序列化map和collection。
不得不说,数据结构书上的代码都是不实际的。 C语言的代码写得比较少,因此多记录下有用的代码。 adlist.h: /* adlist.
interface是Go语言中的一大特点,甚至说是灵魂也不为过。 interface应该会在Go程序中大量出现和使用,因为有必要了解和测试下它的效率。
前言: 现代的cpu都有流水线,分支预测功能,CPU的分支预测准确性可以达到98%以上,但是如果预测失败,则流水线失效,性能损失很严重。
vitess是google的一个mysql项目,用go和python实现。https://code.google.com/p/vitess/ vitess中用rpc方式来中转mysql的请求,其中rpc的实现很有意思,兼容了http请求。
一前言: 以前刚开始用java连接mysql时,都是连猜带蒙的。比如: 一个Statement,Connection何时关闭? Connection能不能先于Statement关闭? ResultSet是怎样存放数据的?...
帮别人的代码改bug,发现有一大堆bug是由get或者remove传递进去的参数类型不匹配而造成的。 比如: Map m = new HashMap(); m.put(new Short((short) 2), "2222"); System.out.println(m.get(2)); 上面的代码输出是null。
原文:http://research.swtch.com/generic 常用的数据结构(vectors,queues,maps,trees,等等)似乎是评估一个新语言的一个热门话题。
ReentrantLock 在多线程情况下要远胜synchronize,这点没有疑问。 最近要写个程序,有个变量是有多数情况下是一个线程读写,有少数情况下是多个线程并发读写。
Java的类库实在是很多,以至于很多人都不太了解,结果总是自己造轮子。 下面汇总了Java中的一些数据结构,加上一些实现的分析,同时备忘。
今天在用VisualVM查看进程的堆dump时,发现一些有意思的地方,见下图: 在“OQL控制台”页面中可以看到“过度分配的字符串”,“布尔值太多”。
auto v = func1(), func2(), func3(); 因为一个函数调用是要经过参数压栈,调用完了,还有退栈(栈清理)的过程。
在Java的一些程序中经常可以看到有这样的代码: String.getBytes("ISO-8859-1") 。 虽然我是大概知道这个是以单字节来解码的,我也不写这样的代码。
当异常没有发生时,没有影响。 其实从异常实现的角度来看,在throw语句处,跳转到异常的处理代码,不同的异常处理,应该类似C++中的虚函数表一样的数构结构(待考证)。
本文地址:http://blog.csdn.net/hengyunabc/article/details/7461919 虚函数为什么慢,cpu分支预测技术,虚函数到底要调用哪些汇编,虚函数实现的简单图示,虚函数不能内联...
from:https://www.ibm.com/developerworks/cn/java/j-codetoheap/ 从 Java 代码到 Java 堆 理解和优化您的应用程序的内存使用 Chris Bailey, Java 支持架构师, IBM 简介: 本文将为您提供 Java™ 代码内存使用情况的深入见解,包括将 int 值置入一个Integer 对象的内存开销、对象委托的成本和不同集合类型的内存效率。
一、HashMap,即java.util.HashMap 标准链地址法实现。这个不用多解析,下图十分明了。(图片来自网络) 二、Collections.synchronizedMap() 函数返回的线程安全的HashMap 这个的实现比较简单。
简单翻译。 原文:http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo MongoDB是通过增加一个tags的数组来实现标签功能(tagging)。
from:http://www.oschina.net/question/1579_45444 未定义行为 首先,一小段理论知识 未定义行为是某些编程语言的特性(尤其在C和C++中),在某些情形下产生的结果將依赖于编译器的实现或指定的优化选项。
from:http://www.oschina.net/question/1579_45444 100个开源C/C++项目中的bugs 摘要 介绍 发现错误样本的各类开源项目 数组...
本文章地址:http://blog.csdn.net/hengyunabc/article/details/7371446 2012-03-31:新版的goclipse改进很大,本文有些内容已过时。
每次都找半天,还不如自己记下来。 1.设置新项目的默认编码 Window->Preferences->General->Workspace->Text file encoding 2.
GridFS简介 GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。 http://www.mongodb.org/display/DOCS/GridFS http://www.mongodb.org/display/DOCS/GridFS+Specification GridFS使用 MongoDB提供了一个命令行工具mongofiles可以来处理GridFS,在bin目录下。
虽然以前也大概知道rpc的实现原理,也看过部分msgpack的实现,但是对于反射不是很了解。 现在看到一个简单完整的实现,也解决我的以前的另一个疑惑: http://topic.
如果使用annonation,要注意如果字段是数据库中的关键字,则要为字段加上“`”号。 如: @Column(name = "`describe`", nullable = false) public String getDescribe() { return this.
堆和栈到底有什么区别? 这个问题往往在面试中会被问到。 栈和堆的从实现上来说,本质是一样的。 栈的大小可以在编译时,或者线创建时指定。
MongoVUE 是个比较好用的MongoDB客户端,不过免费版在15天过后,不能使用gridfs,Server Monitoring等功能。
JDK6的源码: /** * Returns a hash code for this string.
TODO: 用while写法的程序会不会循环展开? 本文地址:http://blog.csdn.net/hengyunabc/article/details/7170865 一个简单的累加求和程序: TYPE S=0; for(int i = 0;i < SIZE; i++) { S += a[i]; } 很多人都觉得这个程序写得不好,编译器不能生成很好的汇编代码。
MongoDB代码中的StringBuilder类,学习下。 // stringdata.h /* Copyright 2010 10gen Inc.
http://bsonspec.org/ BSON这种格式是专门为MongoDB而开发的,类似json的一种二进制格式。 这种格式不一定比json存储的文件小,其优点是解释快。
static long defaultSendSpeed = 1024 * 1024 * 1024 * 1024; 这段代码,实际上 defaultSendSpeed是0! 在Eclipse里也没有提示信息。
开始觉得很神奇,static变量怎么初始化。后来看代码发现了。 public class testStatic { static int x = 0; static { x += 1; } public static void main(String[] args){ System.
停止dr.com即可。。 万恶的dr.com,搞到chrome不能用代理,手机不能和电脑同步。fuck Cannot connect to VM com.
Python中的切片功能强大。但是切片很容易让人搞混。 个人觉得Python的文档不怎么好,好多东西都是零散的,更像教科书。
实验要用到多台虚拟机。于是装好了xp后,先导出虚拟电脑,再导入。 当然,用命令,也可以直接复制一个新的虚拟磁盘文件。不过,懒得管理快照,就直接导出虚拟电脑了。
偶然间发现ubuntu自9.10来就把grub2当作默认引导程序,而grub2的确功能强大。 一直以来,人们都为安装linux和windows之后怎样修复启动而头疼。
http://www.linuxsir.org/main/?q=node/127 在Linux系统中存储设备的两种表示方法 作者:北南南北 来自:LinuxSir.
1.查看uuid blkid 2. Primary和Secondary是对于IDE通道而言的,前者是首要的,后者是次要的。
http://www.hooto.com/home/rui/blog/archives/5144.html VirtualBox VDI 磁盘镜像 - 压缩 指导思想 1.
想新建立一个分支时出现这错误。 后来发现,要先commit一次才会真正建立master分支,此时就可以新建立分支了。。
1.设置virtual box 2.远程桌面: 注意IP是主机的IP,不是虚拟机中的IP 最终远程连接效果图: 总结: 远程桌面主要有两种协议:VNC 和RDP ubuntu 有VNC的server和client,上面是利用virtual box的RDP协议的server。
http://dxwang.blog.51cto.com/384651/216271 【Qt 编码简单实验】 首先,Qt中得QString 类对字符串进行了封装,其内部使用Unicode对传入的串进行编码。