我正在尝试为编译器项目优化其他人的程序,但我有几个问题。
该程序将一块内存设置为只读,然后根据以前未知的输入对其进行写入。然后它捕获被调用的 SIGSEGV,存储页面地址,然后使内存页面可写。通过这种方式,它可以跟踪哪些页面被“弄脏”。这允许程序避免存储千兆字节的不必要空间。
我的主要问题是什么样的命中导致然后捕获 SIGSEGV 会降低性能?这将真正帮助我确定我改变程序的一些想法是否会有所帮助,或者它们是否真的会让事情变得更糟。
理想情况下,我将能够通过使用巧妙的编译技术来避免使用 SIGSEGV 方法,但我想首先确定当前方法的效率如何。
谢谢!