Ubuntu 16.04上使用TCMalloc

最近在研究如何提高C++程序的性能,Google开源的TCMalloc,在C++小对象频繁创建销毁的处理上拥有非常大的优势。

Ubuntu 16.04上使用如下命令安装最新的TCMalloc

对于已经编译好的程序,可以使用如下命令,让程序加载TCMalloc来大致测试一下程序性能的提升

参考链接


Ubuntu 16.04上Linux C++程序性能分析工具perf使用入门

目前,perfLinux系统上最全面最方便的一个性能检测工具。由Linux内核携带并且同步更新。

Ubuntu 16.04系统上需要执行如下命令安装:

使用方法如下(gcc编译时最好使用-g参数,生成符号,方便调试):

参考链接


Ubuntu 16.04下使用GCC5,CUDA 7.5编译Caffe时候报告错误'error: identifier "__builtin_ia32_mwaitx" is undefined'

Ubuntu 16.04下使用GCC5,CUDA 7.5编译Caffe时候报告如下错误:

目前比较好的解决方法是在编译的时候增加_MWAITXINTRIN_H_INCLUDED宏。

如果使用cmake来编译代码,则只需要在CMakeLists.txt中增加如下语句即可

参考链接


Trying to get CUDA 7.5 to work with GCC 5.x

Ubuntu 16.04系统上使用skipfish检测网站安全

skipfishGoogle的工程师MIchal Zalewski开发的一款网站安全检测工具,它完全实现了全自动化操作,不需要人工干预.

Ubuntu 16.04上使用skipfish是比较简单的,使用如下命令安装

网站检测命令如下:

其中output_folder是检测结果的输出目录,扫描结束后可打开index.html查看扫描结果。

参考链接


Ubuntu 16.04编译安装最新的OpenCV3.2

  • 获取源代码

  • 安装依赖库

  • 编译源代码

  • 替换已经安装的版本

  • 编译出错的处理

如果执行cmake时候出现如下错误信息

则应该是在代码根目录下直接执行过cmake,导致根目录下生成了CMakeCache.txt,需要删除CMakeCache.txt再次执行编译即可。

Ubuntu 16.04命令行监视Nvidia显卡使用情况

在使用GPU做计算,比如跑Deep Learning代码的时候,我们可能希望能够实时检测显存的使用情况。

Nvidia自带了一个名为nvidia-smi的命令行工具,会显示显存使用情况,但这个命令行工具只能输出一次结果,不支持持续监控输出。

这时候就需要用到watch命令了.

继续阅读Ubuntu 16.04命令行监视Nvidia显卡使用情况

Ubuntu 16.04 LTS根据进程名结束所有同名进程

最近在调试脚本时,偶尔会由于脚本错误,出现一批的进程没有结束的情况. 手工结束进程,太浪费时间,因此找到一个可以批量结束同名进程的脚本命令,如下:

参考链接


Linux Shell脚本实现根据进程名杀死进程

Ubuntu 16.04 LTS下通过PHP7-FPM配置的服务器增大WordPress文件上传大小限制

一般来说你使用的主机会限制你上传文件的大小,在WordPress的媒体文件上传可以看到,大多数都是2MB。如果是图片的话可能会还够用,但是如果是其他文件就不一定够用了。

增大可以上传的文件大小的话,则执行如下命令

搜索"upload_max_filesize",把默认的2M修改为需要的大小。
搜索"post_max_size",把默认的8M修改为需要的大小。

重启PHP-FPM服务

重新刷新页面,上传文件即可。

Ubuntu 16.04开启dlib对于AVX或者CUDA的支持

最近在使用openface来测试人脸识别,实际过程中发现识别速度非常缓慢,平均每帧的识别速度达到了秒级水平,这个是不可接受的。跟踪代码性能,发现是dlib部分非常缓慢。

根据dlib的文档,默认使用

安装的dlib库,由于对具体硬件的要求(CPU需要支持AVX指令集),是没有开启AVX指令加速的,另外由于显卡的要求,也是默认不开启CUDA的支持。

如果想要开启这部分加速,需要手工编译安装才可以,具体操作如下:

上面的命令是使用AVX指令加速功能的,如果机器上安装了CUDA,则需要正确安装cuDNN 5.0以上的版本,否在编译的时候会报告

对于使用

安装的CUDA-7.5来说,可以从这里下载cuDNN v6.0 (April 27, 2017), for CUDA 7.5,下载完成后,整个目录中的include目录中的文件解压缩到/usr/local/include/目录下,lib64目录中的内容整个解压缩到/usr/lib/目录下,并且在/usr/local/lib/目录下建立libcudnn.so的软链接

都配置正确后,使用如下编译命令安装:

参考链接


Easily Create High Quality Object Detectors with Deep Learning