我正在用C编程并使用 bash 作为我的 shell。目前,我正在尝试在运行程序时进行优化。该程序的一般要点是输入一些参数,读入数据文件,然后程序根据输入参数和文件中的数据运行一些计算。我经常一次运行此代码 100 次,只更改每次运行的输入参数,而不是文件中的数据。我使用xargs
带有各种参数的可执行文件的 shell 脚本来执行此操作。
printf "%s\n" {0..n} | xargs -P 8 -n 1 ./program
问题是我有一个非常大的数据文件,需要大约 1 秒才能读入。这是在每次调用可执行文件时完成的,但是,读入的数据通常不会改变!因此,我相信我可以通过以某种方式保存这些数据来节省大量时间,以便可执行文件的其他调用可以使用已经读入的数据,而不是浪费时间读入数据本身。
我在想也许可能有另一个程序读取数据,然后保护数据地址并将其发送到我当前的可执行文件。在可执行文件完全运行完成后,这将被转发回新程序,然后该程序会释放数据。这可能吗?还是有其他更好的方法?