假设我有一个在给定时间(例如三秒钟)内运行的程序。我想运行该程序,使其运行慢n倍(在命令行上指定)。如果不更改程序,您将如何实现它?
请注意,最后添加 sleep 不是解决方案。该程序必须运行较慢,在开始的三秒内不要全速运行,然后在剩余时间内不执行任何操作。同样,在unix下使用“nice”也不是一个好的解决方案。如果其他进程需要处理器,它将运行较慢;如果同时没有处理器需求,则它将以全速运行。
这是一个好奇心问题。没什么可做的。事实是,我记得15到20年前,由于它们与处理器时钟同步,因此它们在新处理器上玩的太快了。您必须关闭涡轮增压器。
假设程序是C编译程序。
最佳答案
一种想法是编写一个“ptrace运行程序”。 ptrace是允许您在Linux和Mac等平台上实现调试器的调用。
这个想法是附加到程序上,然后重复地告诉应用程序使用ptrace(PTACE_SINGLESTEP)
运行一条指令。如果那还不够慢,则可以在运行程序中对ptrace的每次调用之间添加 sleep 。
关于c - 如何减慢进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2216383/