- 博客(5)
- 收藏
- 关注
原创 memcmp比较两个struct是否相等
struct MyStruct{ char a; int b;};MyStruct A, B;memcmp(&A, &B, sizeof(MyStruct));A和B是否可以通过memcmp来判断是否相等。我一直以为虽然要内存对齐,但是a后面会补三个’\0’所以还是可以判断是否相等的。真是迷之自信!这个问题其实最主要是考察你要知道内存对齐,MyStruct的实际大小是8就够了
2017-03-07 16:04:05 9026 2
原创 不定参数函数牵扯出来的栈的生长方向和大端小端模式
主题:CPU的架构决定了大端小端模式和栈的生长方向。 首先参数从右到左压栈的方式,这是C语言决定的,比如说Pascal就是从左到右压栈,所以Pascal不支持不定参数函数。比如:printf("%s%d%d\n", s, a, b);格式字符串是确定存在的,后面的变量都是不确定的或者说不知道有多少个。如果格式字符串最后一个入栈,位于栈顶,第一个出栈然后解析格式字符串得到不定参的个数,挨个出栈,这样
2017-03-06 21:08:32 692
原创 #define MAX(a, b, ……)
用宏定义MAX(a,b)求两个数最大值:#define MAX(a,b) a>b?a:b用宏定义MAX(a,b,c)求三个数最大值:#define MAX(a,b,c) (a>b?(a>c?a:c):(b>c?b:c))用宏定义MAX(a,b,c,d)求四个数最大值:#define MAX(a,b,c,d) (a>b?a:b)>(c>d?c:d)?(a>b?a:b):(c>d?c:d)
2017-03-06 15:46:31 9591 3
原创 线程池的最优大小
计算密集型应用(CPU密集)顾名思义就是应用需要非常多的CPU计算资源,I/O在很短的时间就可以完成,而 CPU 还有许多运算要处理。在计算密集型应用中,线程池的大小应该等同于主机中 CPU 的数量。再添加更多线程将会打断请求的处理,因为线程的上下文切换也会延迟响应时间。非阻塞型 IO 应用将会是 CPU 密集型的,因为在请求得到处理的时候没有线程等待时间。
2017-03-01 17:13:36 3615 1
原创 my.cnf参数配置:InnoDB引擎性能优化
在网上看了无数的my.cnf的配置,大多数提到的配置无外乎这几个: 1. innodb_buffer_pool_size 2. innodb_log_file_size 3. innodb_log_buffer_size 4. innodb_flush_log_at_trx_commit 然后自己写了两个例子,一个单线程的,一个多线程的来通过改变配置参数来测试是否提高了性能。结果是只有in
2017-03-01 16:10:00 722
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人