- 博客(8)
- 收藏
- 关注
原创 充分利用栈空间提高程序性能
这里介绍一种C++的奇怪代码编写方式, 在追求高性能运算的环境下, 可以让性能和资源都达到较好的发挥. 但不是什么好的代码, 只适用于要求高效率的情况的小量代码使用.以下的三种访问速度, 哪一种会是最快的?1. 全局数据区的数据2. 堆数据区的数据3. 栈数据区的数据答案是3, 栈空间里面的数据访问是最快的.不论写入还是销毁还是读出, 都是栈空间是最快的, 没有测试过的
2013-06-03 15:09:46
842
转载 多核编程伪共享问题及其对策
多核编程伪共享问题及其对策作者: Zhouweiming 周伟明 (42 篇文章) 日期: 三月 26, 2009 在 10:26 上午多核编程中的伪共享问题及其对策注:本文主要内容摘自笔者所著的《多核计算与程序设计》一书,略有修改,后续还会继续发布系列文章,如有需要,可以考虑将一下地址加入到您的浏览器收藏夹中:http://software.intel.com/zh-cn/blogs
2012-02-29 10:02:55
926
转载 汇编原子操作实现(转载)
内容均是转载自 http://www.cppblog.com/woaidongmao/archive/2009/10/19/98965.html原子操作(1) - 用汇编实现原子操作“最轻量级的锁”,通常也叫”原子操作”,之所以加引号是因为他们在汇编级别并不是
2011-09-21 15:50:41
920
原创 多线程编写基础
注意事项:1. volatile 关键字并非每种编译器都支持, 要写通用的代码只能够采用C++标准的关键字.2. 任何被线程读取的值, 即使有同步, 也只有以指针形式访问其内容才能够获取最新值, 或者是以非inline的函数调用才能够获取最新值, inline会导致编译器
2011-08-04 13:50:33
818
原创 SOCKET编程的小细节和误区
1. UDP使用的误区, 一个socket, 存在两个线程, 同时调用sendto和recvfrom, 是可行的, (阻塞模式下已经通过测试), 同时存在多个线程调用sendto或recvfrom才是不可行的. 采用一个socket进行recvfrom, 把sockaddr拿出来, 用另外的一个socket进行sendto是可行的, 而且效率会比用一个socket要高.2. TCP传
2011-07-20 09:38:32
1200
1
原创 字符串数组未初始化的错误形式
<br />REPNE SCAS BYTE PTR ES:[EDI] 语句crash的情况<br /> <br />通常, 这样的指令用在字符串长度描述, 而这样的语句在执行时错误, 而且怎样也过不去, 原因大部分是存在字符串没有初始化正确, 导致内存访问非法, 而这样的指令是单指令, 所以不论怎样下一步, 还是停驻在当前的指令上面. 然后导致程序怎样执行不下去.<br /> <br /> <br />指令解释:<br /> <br />重复前缀指令<br />任何一个串操作指令,都可以在前面加一个重复前
2011-03-28 15:22:00
3957
转载 WINDOWS服务
<br /> 本文主要介绍了 OpenSCManager、CreateService、OpenService、ControlService、DeleteService、RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher等操作服务程序的主要几个API的用法,具体的函数参数大家可以查阅MSDN。<br /> 为什么要使用服务应该程序呢?服务程序就像系统的一些服务一样,能够自动地启动,并执行相应的操作;而且因为服务程序的
2011-03-22 11:33:00
553
转载 TCP/UDP基础入门
5.1UDP实例 UDP发送程序的步骤如下:1. 用WSAStartup函数初始化Socket环境;2. 用socket函数创建一个套接字;3. 用setsockopt函数设置套接字的属性,例如设置为广播类型;很多时候该步骤可以省略;4. 创建一个sockaddr_in,并指定其IP地址和端口号;5. 用sendto函数向指定地址发送数据,这里的目标地址就是广播地址;注意这里不需要绑定,即使绑定了,其地址也会被sendto中的参数覆盖;若使用send函数则会出错,因为send是面向连接的,而UDP是非连接的
2011-03-17 17:20:00
766
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人