1 microsoft 提供了一个检测指针越界访问的工具pageheap。
2内存映射文件
有个一很难发现的问题是,创建基于系统调页文件的内存映射文件内核对象是通过传入hFile为 INVALID_HANDLE_VALUE 的参数来标记的,而创建或打开普通硬盘文件失败时的返回值也是INVALID_HANDLE_VALUE.
......
HANDLE hFile = CreateFile (....) ;
HANDLE hMap = CreateFileMapping( hFile , .... );
......
这段代码本意是先创建或是打开一个普通的硬盘文件,然后创建一个基于此的内存映射文件内核对象。但若是第一步创建失败,则生成了一个基于系统调页文件的对象
所以一定要在CreateFile 调用完成后检查返回值。
>>>>>>
程序启动优化,源代码:
1 减少启动读取配置文件的数量
在一个cpu为2.6ghz,硬盘位5400r/s的系统中,打开一次稳健的操作就需要40ms左右。如果应用程序包含25个配置文件,则至少需要1s的打开时间。
2 预读频繁访问的文件
可以在windows下通过内存映射文件的方法,编写一个 MapAndReadThroughFile 函数来实现。