[C++] 在linux或windows上使用direct io

首先Direct IO是一种不用内核缓存的IO, 它可以做到直接将用户空间的内存直接写入磁盘或者将磁盘数据直接读到用户空间的缓冲区,这种策略就是不用内核的缓存而使用用户自己设计的缓存. 需要注意的是,使用DirectIO会完全绕过系统的预取(prefetch)以及页缓存机制,如果不是必须,那么我认为还是优先考虑普通的read或者直接mmap吧。Linux几个方面注意一下就可以了在调用open(pa

- 阅读全文 -

Boost Python的C++对象, Pickle支持及其原理

默认用boost python包裹的C++对象是不支持pickle的,如果要用pickle.dumps(obj)的话那会提示错误Pickling of "xxx" instances is not enabled.这边吐槽一下在最新的代码里,给的reference链接其实还是不可用的。真正正确的是https://www.boost.org/doc/libs/1_74_0/libs/python/d

- 阅读全文 -

记录一下找了半天的huge page坑——fork越来越慢的原因

背景之前发现Jupyter Notebook下面,如果数据占用多的话,开多进程池会特别的慢。一开始以为是Python的锅,但是把multiprocessing.pool改成直接用os.fork()调用以后,问题依旧。照理来说unix下面使用fork开进程,会启用copy-on-write机制,内存增长并不是特别明显,但是实际在htop下面看内存仍然会在fork之后增长,并且和进程数量是线性相关的。

- 阅读全文 -

std::future 与 std::promise 简单使用、简单原理

C++11有了一些关于线程的模型,在此之前C++里可是各自为政的,各种线程库各种神奇用法。其中有两个好玩的东西就是std::promise<T>和std::future<T>,下文书中形容它们像是个“虫洞”。std::future是虫洞的出口:一个未来对象的“获取器”,在未来的某一刻它能返回一个有用的值,但现在还没有...std::promise是虫洞的入口:我们要保证在未

- 阅读全文 -

最新文章

最近回复

  • master: 测试回复
  • master: 金融的范围太广了...
  • echo: 希望老哥能多多推荐一些金融方面的书 嘿嘿
  • master: 月神卡有限速42Mbps么?我看官网上上这么写的~https:/...
  • peter: 180港币只有6+5G流量,月神卡不用签约118港币5+5G流量...
  • master: LZMA SDK is placed in the public...
  • master: 刚测过,可以连接5G了,不过还没有跑很快
  • master: 据说以前能够连上5G的,最近要推出5G套餐所以降级了。
  • Tony: 以前的one内地&香港合约计划好像是5G网络。

分类

标签

归档

其它