Рассмотрите использование rdiff-резервного-копирования вместо rsync+cp. Это обрабатывает старые копии файлов автоматически, таким образом, Вам не нужно к CP.
От rdiff-резервной страницы:
"Целевой каталог заканчивается копия исходного каталога, но дополнительный реверс diffs хранится в специальном подкаталоге того целевого каталога, таким образом, можно все еще восстановить файлы, потерянные некоторое время назад".
Хорошо, я украл еще несколько ресурсов, и похоже, что для счетчиков попаданий / промахов в кэше ЦП мы должны использовать трассировку отдельных процессов или pid или tid. Другими словами, perf и oprofile.
Например, perf stat дает это.
Performance counter stats for 'ls':
3.905621 task-clock # 0.831 CPUs utilized
1 context-switches # 0.000 M/sec
0 CPU-migrations # 0.000 M/sec
267 page-faults # 0.068 M/sec
379,003 cycles # 0.097 GHz [24.55%]
1,332,419 stalled-cycles-frontend # 351.56% frontend cycles idle [36.65%]
<not counted> stalled-cycles-backend
833,177 instructions # 2.20 insns per cycle
# 1.60 stalled cycles per insn
580,745 branches # 148.695 M/sec [95.65%]
37,799 branch-misses # 6.51% of all branches [71.09%]
0.004697863 seconds time elapsed
Oprofile дает аналогичный результат, но perf довольно хорош, imo.
Другое дело, что для банков памяти numastat дает вам еще один уровень детализации.
$ numastat
node0
numa_hit 74263001
numa_miss 0
numa_foreign 0
interleave_hit 15459
local_node 74263001
other_node 0
Да, эта система является системой с одним узлом.
В этом вопросе/ответе они говорят об инструментах Linux для профилирования cache-miss:
perf:
$ perf stat ./yourapp
$ perf stat -B dd if=/dev/zero of=/dev/null count=1000000
valgrind:
$ valgrind ./yourapp
а также времени
, которое подсчитывает страницу ошибки в теории:
$ time -v YourProgram.exe
в моей системе он не принимает флаг -v
, я должен проверить, почему