• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<script>
4
5// How many arrays to allocate.
6var __n_arrays = 10;
7// How many elements in each array
8var __n_elements = 10 * 1000 * 1000;
9// Touch one element every __touch_step elements.
10var __touch_step = 1000;
11var __bloat_interval_ms = 100;
12var __text_area = null;
13var __start_time;
14
15function __initialize_bloat() {
16  __total_allocation = 0;
17  document.bloat = new Array(__n_arrays);
18  for (i = 0; i < __n_arrays; i++) {
19    document.bloat[i] = new Array(1);
20  }
21  __display_message("allocation was cleared");
22}
23
24function __display_message(text) {
25  if (__text_area == null) {
26    __text_area = document.getElementById("text area");
27  }
28  if (__text_area != null) {
29    __text_area.innerText = text;
30  }
31}
32
33function __bloat_array(i) {
34  if (i < __n_arrays) {
35    document.bloat[i] += new Array(__n_elements);
36    for (j = 0; j < __n_elements; j += __touch_step) {
37            document.bloat[i][j] = j;
38    }
39    setTimeout(function() {__bloat_array(i + 1);}, __bloat_interval_ms);
40  }
41  var message = "allocated "
42      + i + " arrays of size " + __n_elements / (1000 * 1000) + "M\n";
43  if (i >= __n_arrays) {
44      message += "done, elapsed time = " +
45          ((new Date).getTime() - __start_time) / 1000.0 + " seconds";
46  }
47  __display_message(message);
48}
49
50function __bloat() {
51  __start_time = (new Date).getTime();
52  __bloat_array(0);
53}
54
55__initialize_bloat();
56__bloat();
57
58</script>
59</head>
60<body>
61<center>
62
63    <div id="text area">
64    No memory allocated yet.
65    </div>
66
67</center>
68</body>
69</html>
70