CPU ile repetitly büyük veri (yani yok DMA ile) okumak için deneyin. gibi:
int main() {
const int size = 20*1024*1024; // Allocate 20M. Set much larger then L2
char *c = (char *)malloc(size);
for (int i = 0; i < 0xffff; i++)
for (int j = 0; j < size; j++)
c[j] = i*j;
}
Ancak sunucusuna bağlıdır
daha büyük bir sorun (bellekte) disk önbellek sonra, L1/L2 önbellek olabilir. Linux'ta (örneğin) kullanarak damla:
sync
echo 3 > /proc/sys/vm/drop_caches
Düzenleme: O hiçbir şey büyük bir programı oluşturmak için Önemsiz: Farklı isimler altında birkaç kez Koşu
#!/usr/bin/ruby
puts "main:"
200000.times { puts " nop" }
puts " xor rax, rax"
puts " ret"
(kod değil üretilen script) iş yapmalı
Hangi mimariyi ve işletim sistemini test ediyorsunuz? –
Sunucuda bir miunut için başka rastgele şeyler yapmak isterim, ya da biraz daha ham olurdu? – Dentrasi
Sorumu, neden bunu yapmak istersiniz? Ben hafıza ve önbellek davranışı üzerindeki veri toplamak için bir kereden fazla kriter koşuyorum –