![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译、链接、库
文章平均质量分 64
宫博
阿里集团DBA
展开
-
C语言中的inline
inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。1. 在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。2. inline 推出的目的,也正是为了取代这种表达式形式的宏定义,它消除了转载 2013-03-31 16:42:11 · 611 阅读 · 0 评论 -
Python网络编程中的select 和 poll I/O复用的简单使用
首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点转载 2013-07-20 10:51:15 · 664 阅读 · 0 评论 -
hadoop环境搭建问题
安装SSH 报错 Privilege separation user sshd does not exist解决办法add following line in /etc/passwd sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 其中/var/empty/sshd修改为你自己的ssh转载 2013-12-12 15:19:24 · 646 阅读 · 0 评论 -
ubuntu 安装hadoop
1.安装ssh-serversudo apt-get install openssh-server启动:sudo /etc/init.d/ssh start检查:ps -e|grep ssh 配置文件路径:/etc/ssh/sshd_config原创 2013-12-13 11:37:56 · 751 阅读 · 0 评论 -
Why the “MAVEN2_CLASSPATH_CONTAINER will not be exported or published”
Classpath entry org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINERwill not be exported or published. Runtime ClassNotFoundExceptionsmay resultSo solve this, do the following:Op转载 2013-12-21 12:02:37 · 1002 阅读 · 0 评论 -
追踪linux 命令Free
追踪linux 命令Free--- 宫博(杨祥合) 2014-04-251.free命令Mem: 这一行,按OS角度理解内存使用情况.有等式:1954 =1120 + 834 其中,OS 层的buffers和cached分别为85M 和 614M -/+ buffers/cache: 这一行,从应用程序角度看待内存使用情况有等式:420 =原创 2014-04-25 14:08:06 · 571 阅读 · 0 评论 -
Good tool for ubuntu, as a linux programer
1 down vote In ubuntu there is apt-file package that allows you to find package which contains specified file.You need to install it withsudo apt-get install apt-fileupdate the cache wi转载 2014-04-24 19:59:51 · 490 阅读 · 0 评论 -
释放Linux操作系统文件缓存
2011-12-14 01:13:37| 分类: Linux/Windows | 标签: |举报 |字号大中小 订阅自从工作了,再也没有更新过这个技术博客。一来工作了没什么好写的,二来确实也挺忙。最近稍微有点空闲,先开一个写一点吧。记得在公司做新人习题的时候,题目是通过网络和本地分别读取一个约12G的大文件,从中读取每一行,对每行特定的几个字段,调用分词库分词并统计词频。当时遇转载 2014-04-25 13:04:19 · 513 阅读 · 0 评论 -
gdb调试memcached
为了方便gdb调试,按照如下重新编译:如果list命令不好用,说明没有把gdb编译进去(若执行完一下步骤依然不好用,可以先make clean然后再执行下面的命令,需要在执行该命令的终端或新的终端打开有效,之前开启的终端依然无效)./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent C转载 2014-06-06 09:55:43 · 583 阅读 · 0 评论 -
linux下网络程序遭遇SIGPIPE的解决(转)
我的一个服务器程序, 在Windows下运行正常. 但当在Linux(centos 6.3)下,进行对端未开启的异常测试时,出现莫名退出 . 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Broken pipe". 问题分析:对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合T转载 2014-06-06 09:56:31 · 636 阅读 · 0 评论 -
数据库稠密索引与稀疏索引
一、稠密索引如果记录是排好序的,我们就可以在记录上建立稠密索引,它是这样一系列存储块:块中只存放记录的键以及指向记录本身的指针,指针就是一个指向记录或存储块地址。稠密索引文件中的索引块保持键的顺序与文件中的排序顺序一致。既然我们假定查找键和指针所占存储空间远小于记录本身,我们就可以认为存储索引文件比存储数据文件所需存储块要少得多。当内存容纳不下数据文件,但能容纳下索引文件时,索引的优势尤为转载 2014-05-30 20:41:54 · 1049 阅读 · 0 评论 -
Eclipse中syso 快捷键 Alt + / 不能使用的问题
通过使用windows-preferences-java-editor-templates中的快捷键,可以显著提升输入速度。快捷键的设置一般是在这里以及general下面的keys里面设置。 但是,在ubuntu12.04中安装eclipse juno版后,在代码里输入syso然后按alt + / 后,没有自动填充成为System.out.println();转载 2013-07-03 16:14:43 · 1768 阅读 · 0 评论 -
Eclipse中tab width的设置
Eclipse中tab width的设置十二 13th, 20111,268 views | 发表评论 | Trackback前阵子,看到水木中讨论python中的用空格还是用tab来做indentation,然后也讨论到了tab的宽度什么的。在Python、C、Shell中,现在我一般采取tab来做缩进,一般我设置为一个tab显示为8个字符宽度(当然tab是tab转载 2013-07-18 16:51:49 · 889 阅读 · 0 评论 -
预定义宏__GNUC__
预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏。需要针对gcc编写代码时, 可以使用该宏进行条件编译。 2 __GNUC__ 的值表示gcc的版本。需要针对gcc特定版本编写代码时,也可以使用该宏进行条件编译。 3 __GNUC__ 的类型是“int”,该宏被扩展后, 得到的是整数字面值。可以通过仅预处理,查看宏扩展转载 2013-03-31 16:46:50 · 809 阅读 · 0 评论 -
妙用0元素数组 实现大小可变结构体
妙用0元素数组 实现大小可变结构体#include #include #include struct aa{ int a; int b;};struct bb{ struct aa test[0];};int main(void){ struct bb *p=(struct bb*)malloc(s转载 2013-04-01 17:00:25 · 525 阅读 · 0 评论 -
使用gdb调试多线程程序总结
http://hi.baidu.com/hcq11/item/eff0fdcf2318a6dbef183bc4>使用gdb调试多线程程序总结一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID转载 2013-06-12 17:50:42 · 507 阅读 · 0 评论 -
sequence 性能测试
根据自己理解的oracle sequence的方式,实现了下,并做了性能测试,测试环境为公司报废的笔记本电脑 dell E4300 ubuntu 13 64位系统.代码实现:#include #include #include #include /*** created by gongbo.yxh seq mod 2013-06-11原创 2013-06-13 16:13:43 · 881 阅读 · 0 评论 -
关于单CPU,多CPU上的原子操作
来源:http://software.intel.com/zh-cn/blogs/2010/01/14/cpucpu/?cid=sw:prccsdn956所谓原子操作,就是"不可中断的一个或一系列操作" 。硬件级的原子操作:在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了转载 2013-06-13 22:11:46 · 450 阅读 · 0 评论 -
mutex加锁和解锁性能测试
mutex 性能测试:公司报废笔记本dell E4300,Ubuntu 13.04系统mutex 加锁和解锁性能测试:(加锁和解锁)过程,一亿次,共耗时:3883693微妙平均时间 (3888524 * 1000/100000000 = 38.88纳秒)在我的台式机: AMD 1100T 6核心处理器,而且是VMware 虚拟机上:gongbo@gongbo原创 2013-06-13 15:55:58 · 1255 阅读 · 0 评论 -
关于 struct pollfd fdarray[] 和 struct pollfd *fdarray
在C语言中,两种写法是等价的,使用第一种说法,以说明fdarray指向的是一个结构数组,而不是指向单个结构的指针.buffer 与cache 的区别A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the dis转载 2013-06-05 20:25:10 · 689 阅读 · 0 评论 -
Linux Futex的设计与实现
引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex 是Fast Userspace muTexes的缩写,由Hubertus Franke, Matthew Kirkwo转载 2013-06-18 12:27:30 · 510 阅读 · 0 评论 -
Protobuf 的安装
Protobuf是google的一个开源的通信协议解决方法,具体的说就是按照Protobuf的语法(类C++)写一个协议文件(就是一个结构体),然后用protoc编译器进行编译,会自动生成协议的类文件,并提供基本的访问修改方法。支持C++,Java,Python,其实就是根据我们定义的数据自动生成类文件。源代码下载地址:https://code.google.com/p/protobuf/转载 2013-07-18 12:13:12 · 1022 阅读 · 0 评论 -
Google Protocol Buffers自带c++,java,python例子程序编译运行
by flying5 in nosql on 2011-08-26 | tags: c java ProtocolBuffer python在我的前一篇文章《Protocol Buffers的安装使用和C++/Python入门示例》中提到google protocol buffers自带了examples,里面有c++,java,python的例子。初学者在编译的过程中经常会遇到环境变转载 2013-07-18 13:29:57 · 1797 阅读 · 0 评论 -
unix系统查看进程占用内存的方法
(1)ps 命令查看:gb@gb-virtual-machine:/proc/19204$ ps -O sz,rsz,vsz 19204 PID SZ RSZ VSZ S TTY TIME COMMAND19204 78192 1004 312768 S ? 00:00:00 ./memcached -原创 2014-06-01 16:02:38 · 8638 阅读 · 1 评论