|
- #include <stdio.h>
- int arr[64];
- char *jp;
- unsigned now()
- {
- return (jp[0] << 8) + jp[1];
- }
- add(a, b)
- int a, b;
- {
- return a + b;
- }
- main()
- {
- unsigned t0, t1;
- int i, j, s;
-
- jp = (char *) 0xa1;
- t0 = now();
- s = 0;
- for (i = 0; i < 400; i++)
- s = add(s, i);
- t1 = now();
- printf("calls %u s=%d\n", t1 - t0, s);
-
- t0 = now();
- for (j = 0; j < 20; j++)
- for (i = 0; i < 64; i++)
- arr[i] = arr[i] + i + j;
- t1 = now();
- printf("array %u a=%d\n", t1 - t0, arr[10]);
-
- t0 = now();
- s = 0;
- for (i = 0; i < 1000; i++) {
- if (i > 500) s = s + 1;
- else s = s + 2;
- }
- t1 = now();
- printf("branch %u s=%d\n", t1 - t0, s);
-
- t0 = now();
- s = 1;
- for (i = 0; i < 300; i++)
- s = (s * 3 + i) % 1000;
- t1 = now();
- printf("arith %u s=%d\n", t1 - t0, s);
- }
|