]> git.llucax.com Git - software/dgc/dgcbench.git/blob - micro/rnd_data.d
aa713553bfbf8da02a8396f605eca6acf49e3802
[software/dgc/dgcbench.git] / micro / rnd_data.d
1 // Written by Oskar Linde <oskar.lindeREM@OVEgmail.com>
2 // Found at http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=46407
3 // Sightly modified by Leandro Lucarella <llucax@gmail.com>
4 // (changed the main loop not to be endless and ported to Tango)
5
6 import tango.math.random.Random;
7
8 const IT = 50_000;
9
10 void main() {
11         // The real memory use, ~55 KiB (original: ~20 MiB)
12         uint[] data;
13         data.length = 10_000; // original: 5_000_000
14         auto rand = new Random();
15         foreach (ref x; data)
16                 rand(x);
17         for (int i = 0; i < IT; ++i) {
18                 // simulate reading a few kb of data (14 KiB +/- 10 KiB)
19                 uint[] incoming;
20                 incoming.length = 1000 + rand.uniform!(uint) % 5000;
21                 foreach (ref x; incoming)
22                         rand(x);
23                 // do something with the data...
24         }
25 }
26