我知道volatile不会在int上强制执行原子性,但是如果你访问单个字节会这样做吗?如果我没记错的话,语义要求写入和读取始终来自内存.
或者换句话说:CPU是否始终以原子方式读写字节?
当我上次这样做时,你会使用DirectDraw blit到硬件表面,甚至直接映射它并直接绘制.
今天推荐的方法是什么?使用Direct3D 10/11并做同样的事情?
编辑:为了澄清我的问题,我想做一些软件光栅化,因此需要一种快速的方法将像素数据直接blit到显示器.
假设我想编写一个算法,处理一个不可变的树数据结构,该数据结构以叶子列表作为输入。它需要返回一棵新树,并对从这些叶子向上的旧树进行更改。
我的问题是,如果不重建整个树,检查叶子是否在列表中,似乎没有办法做到这一点纯粹的功能性,因为你总是需要返回一个完整的新树作为操作的结果,你可以' t 改变现有的树。
这是函数式编程中的一个基本问题,只能通过使用更合适的算法来避免,还是我遗漏了什么?
编辑:我不仅要避免重新创建整个树,而且函数算法应该具有与变异变体相同的时间复杂度。
2d ×1
atomic ×1
benchmarking ×1
c ×1
c++ ×1
drawing ×1
immutability ×1
java ×1
performance ×1
pixels ×1
tree ×1
windows ×1