【发布时间】:2013-11-19 08:41:09
【问题描述】:
我有一个由两部分组成的程序:
- 图形编程语言的虚拟机,
- 图像处理例程。
问题在于,只要没有处理大图像,虚拟机就可以运行得足够快。处理大图后,虚拟机性能下降约5倍。我猜这是因为当大图像出现时,属于虚拟机的对象的内存缓冲区会从缓存中删除。通常,处理器会为代码保留一个单独的缓存,为数据保留一个单独的缓存,但在解释我的程序时不会。
问题: 有什么方法可以使解释代码相同,即以某种方式将内存缓冲区标记为缓存内存的高优先级,或者以某种方式分配一个保证保留在缓存中的内存缓冲区?
让我补充一点,虽然图像处理比解释程序慢得多,但在某些情况下,第二部分变得至关重要 - 例如,对图像上检测到的一组点进行后处理 - 这些是简单的算术运算,那么在虚拟机上太慢了。
【问题讨论】:
标签: c++ performance caching memory-management