windows的兼容模式

Windows从Vista之后,新增了一个应用程序的兼容模式。比如程序在XP系统下面可以正常运行,但是系统升级到Win7之后,调用的一个XP的系统接口在Win7系统里不存在或者接口行为或者参数意义发生了改变,这样程序运行的时候就会发生崩溃或者异常。兼容模式就是让程序不变的情况下,操作系统自己去兼容程序的API调用。 我们在Win7上面右键菜单查看属性,选择兼容性,可以看到如下图所示: 选择兼容模式,就可以让应用程序兼容所选定的操作系统运行。 比如我们选择兼容Windows... Read More | Share it now!

Profile-guided optimization

传统的C++代码编译链接器生成可执行文件,并没有考虑到代码实际执行的情况。比如代码中一个switch表达式,某条分支的逻辑在实际环境中执行的次数占绝大数,而编译链接器无从得知这些信息,也就没办法做出优化。Profile... Read More | Share it now!

Chromium fast start机制

我们知道Chromium有一个Browser进程,多个Renderer进程。如果已经运行了Chromium浏览器,再通过快捷方式启动浏览器,会打开新的浏览器窗口,显示新标签页。或者创建一个新的浏览器进程,给它传递一个url参数,比如https://www.baidu.com/,就会在现有的窗口里面打开一个百度的页面。查看浏览器的进程,发现仍然只有Browser进程,那么第二次创建的新创建的进程哪里去了呢? 这就是Chromium的fast... Read More | Share it now!

Centos 7上安装WordPress

因为最近博客搬家,重新搭建了一遍Wordpress环境,写篇日志记录一下。 安装LAMP环境 LAMP环境就是Linux+Apache+Mysql+PHP。甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。因此目前Mysql被MariaDB所代替。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 Linux系统我选择Centos... Read More | Share it now!

搭建Chromium代码镜像

动机 做Chromium浏览器开发有件比较蛋疼的事情是获取Chromium代码。Chromium代码仓库一是比较大,依赖的东西很多,二是它的服务器都在国外,国内往往连不上。因此我想利用一台能够直接访问chromium.googlesource.com的服务器做为googlesource的镜像,我直接通过镜像来同步代码。 配置镜像服务器 https://chromium.googlesource.com/chromium/src.git是Chromium代码的主仓库,它依赖70多个第三方仓库,最方便快捷的方式就是利用cache-dir机制来一次性获取所有代码仓库。 获取depot_tools Chromium代码都是用depot_tools工具来管理,所以第一步就是要获取这个工具。在/chromium目录里面运行:git... Read More | Share it now!

Linux搭建git服务器gitolite

动机 一直想有个Git代码服务器来同步代码。之前用的Github,但是只有付费账号才能创建私有仓库。开了2年的付费Micro账号,真心很贵,而且速度比较慢,又不稳定,之后就不再续费了。 然后又用国内的Git服务器什么GitCafe,后来这个挂了。还用过OSChina的Git,这个速度很快,目前还存活着。但是心里对国内的服务不太放心,会泄露我重要的代码,总觉得不靠谱,所以在国内的Git服务只是存放一些不重要的代码仓库。 最后一条路是自己买个VPS搭建一个Git代码服务器。最先想到的是Gitlab,它跟Github很类似。但是它使用Ruby语言写的,又慢又占用资源,最低的硬件要求居然是2GB内存。用过一段时间,最后还是放弃。 然后公司使用的是Gerrit,我对这个也比较熟悉,准备再搭一个Gerrit,网上一查,这货居然比较Github还占用资源。稍后还折腾过Gitblit,Gitweb,功能太弱,都不满意。 最后决定使用Gitolite来搭建一个Git服务器了,一是占用资源少,二是ssh协议,安全快速,三是搭建、管理简单方便,四是功能强大。 Gitolite功能很强大,但是https://github.com/sitaramc/gitolite... Read More | Share it now!