Skip to content

Instantly share code, notes, and snippets.

@gautam1168
Created February 6, 2023 18:28
Show Gist options
  • Save gautam1168/90f828503a043ba5b914d68478a3f549 to your computer and use it in GitHub Desktop.
Save gautam1168/90f828503a043ba5b914d68478a3f549 to your computer and use it in GitHub Desktop.
Embedding javascript in C++ to measure ticks
typedef unsigned char uint8;
typedef unsigned int uint32;
typedef int int32;
typedef unsigned long long uint64;
int32
add(uint32 *NumbersToSum, int32 Count)
{
int32 Result = 0;
for (int32 i = 0; i < Count; i += 4)
{
Result += NumbersToSum[i];
Result += NumbersToSum[i + 1];
Result += NumbersToSum[i + 2];
Result += NumbersToSum[i + 3];
}
return Result;
}
// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "include/libplatform/libplatform.h"
#include "include/v8-context.h"
#include "include/v8-initialization.h"
#include "include/v8-isolate.h"
#include "include/v8-local-handle.h"
#include "include/v8-primitive.h"
#include "include/v8-script.h"
typedef unsigned long long uint64;
int
GetMeasureForAdd(int Count, int *Numbers)
{
int Result1 = 0;
int Result2 = 0;
int Result3 = 0;
int Result4 = 0;
for (int NumIndex = 0; NumIndex < Count; NumIndex += 4)
{
Result1 += Numbers[NumIndex];
Result2 += Numbers[NumIndex + 1];
Result3 += Numbers[NumIndex + 2];
Result4 += Numbers[NumIndex + 3];
}
return Result1 + Result2 + Result3 + Result4;
}
int
main(int argc, char* argv[])
{
uint64 start = __rdtsc();
int NumbersToSum[] = {
4, 68, 10, 6, 72,
63, 82, 71, 22, 7,
78, 19, 87, 14, 27,
64, 71, 22, 79, 14,
36, 36, 18, 21, 77,
88, 90, 36, 29, 28,
70, 18, 78, 31, 5,
33, 73, 85, 15, 50,
70, 93, 83, 99, 80,
78, 62, 24, 41, 12,
36, 24, 36, 7, 95,
91, 43, 16, 36, 33,
50, 46, 25, 82, 73,
30, 21, 56, 95, 45,
94, 45, 48, 23, 68,
70, 27, 54, 30, 78,
11, 87, 98, 33, 64,
37, 74, 4, 61, 86,
91, 48, 38, 5, 46,
9, 78, 37, 10, 21,
66, 37, 50, 52, 29,
27, 14, 91, 36, 94,
85, 9, 23, 2, 14,
72, 82, 36, 46, 94,
5, 7, 94, 53, 97,
18, 94, 18, 13, 35,
45, 49, 4, 54, 89,
90, 68, 31, 21, 72,
58, 12, 16, 48, 25,
17, 20, 31, 41, 71,
13, 85, 92, 24, 55,
79, 22, 45, 94, 21,
35, 31, 43, 26, 86,
35, 43, 40, 36, 66,
46, 63, 34, 1, 18,
85, 28, 4, 28, 44,
5, 18, 4, 16, 83,
8, 61, 15, 43, 2,
20, 22, 26, 82, 35,
11, 63, 70, 15, 80,
98, 34, 2, 39, 11,
32, 44, 93, 99, 5,
75, 98, 38, 71, 4,
20, 88, 53, 2, 23,
76, 12, 30, 95, 24,
21, 58, 15, 61, 88,
12, 84, 84, 39, 24,
49, 65, 75, 50, 32,
57, 86, 51, 85, 71,
98, 30, 43, 27, 33,
32, 17, 82, 11, 50,
40, 4, 5, 25, 93,
64, 35, 86, 97, 24,
59, 29, 64, 47, 38,
87, 25, 94, 80, 10,
37, 59, 43, 16, 27,
21, 75, 93, 67, 94,
74, 43, 53, 6, 7,
63, 72, 69, 60, 14,
30, 77, 8, 39, 35,
68, 92, 86, 24, 42,
95, 42, 32, 71, 88,
42, 51, 33, 63, 63,
41, 52, 12, 66, 55,
39, 70, 92, 84, 33,
3, 55, 26, 93, 17,
43, 63, 25, 68, 28,
77, 1, 35, 67, 72,
33, 74, 42, 86, 5,
25, 98, 73, 4, 27,
54, 68, 88, 10, 94,
66, 12, 8, 13, 12,
24, 78, 14, 23, 80,
23, 31, 22, 83, 12,
83, 73, 15, 84, 90,
46, 58, 80, 84, 93,
95, 20, 54, 59, 53,
69, 61, 50, 56, 7,
20, 22, 82, 24, 37,
76, 15, 21, 14, 85,
76, 59, 22, 31, 15,
78, 29, 68, 87, 50,
10, 30, 84, 59, 78,
66, 93, 89, 78, 89,
52, 97, 55, 26, 35,
77, 37, 52, 47, 56,
26, 90, 49, 75, 51,
81, 85, 38, 78, 21,
18, 36, 70, 53, 7,
37, 80, 81, 7, 86,
59, 15, 61, 71, 71,
56, 15, 19, 79, 81,
37, 45, 73, 85, 29,
68, 45, 96, 51, 39,
9, 78, 4, 60, 6,
42, 57, 6, 52, 11,
15, 50, 91, 54, 37,
1, 43, 61, 1, 97,
58, 75, 41, 99, 47,
29, 100, 75, 65, 65,
79, 44, 78, 20, 61,
49, 63, 69, 54, 84,
40, 91, 15, 45, 10,
31, 36, 83, 76, 78,
3, 66, 85, 20, 47,
50, 95, 20, 45, 33,
14, 13, 5, 67, 14,
47, 22, 67, 97, 74,
90, 7, 93, 53, 100,
78, 32, 82, 73, 27,
97, 49, 27, 79, 12,
71, 1, 67, 21, 9,
24, 86, 16, 97, 95,
59, 32, 9, 48, 93,
79, 22, 10, 97, 97,
4, 68, 93, 60, 55,
80, 75, 52, 50, 50,
98, 37, 71, 97, 4,
23, 98, 2, 44, 94,
19, 74, 29, 6, 34,
79, 74, 53, 90, 100,
99, 87, 61, 38, 94,
49, 21, 74, 68, 88,
22, 92, 88, 84, 97,
17, 44, 42, 9, 74,
22, 41, 79, 72, 35,
26, 34, 21, 61, 18,
33, 86, 54, 94, 89,
63, 62, 78, 60, 16,
95, 89, 52, 6, 8,
84, 73, 23, 64, 21,
52, 78, 15, 84, 75,
88, 41, 63, 47, 23,
41, 19, 72, 39, 7,
19, 83, 11, 70, 40,
67, 43, 78, 53, 98,
91, 40, 19, 46, 50,
58, 41, 89, 10, 64,
87, 38, 56, 77, 88,
18, 98, 47, 5, 79,
35, 30, 32, 63, 74,
21, 61, 45, 53, 40,
23, 22, 87, 94, 37,
17, 89, 85, 13, 38,
47, 41, 85, 29, 27,
20, 77, 7, 54, 2,
85, 91, 30, 19, 96,
42, 16, 24, 16, 25,
86, 35, 41, 41, 60,
13, 2, 66, 86, 88,
52, 22, 8, 43, 58,
15, 79, 44, 87, 7,
73, 53, 59, 86, 99,
90, 71, 38, 17, 73,
81, 84, 93, 57, 11,
18, 41, 11, 82, 5,
67, 18, 23, 18, 60,
38, 25, 89, 47, 63,
13, 53, 53, 90, 12,
36, 57, 65, 67, 94,
1, 94, 72, 85, 45,
60, 84, 80, 27, 27,
68, 33, 8, 4, 43,
91, 23, 94, 63, 50,
31, 69, 75, 24, 84,
5, 45, 56, 69, 3,
97, 8, 1, 13, 76,
46, 73, 97, 34, 79,
51, 14, 96, 98, 84,
91, 45, 27, 51, 97,
3, 32, 70, 70, 62,
64, 96, 10, 21, 91,
17, 96, 14, 49, 79,
68, 17, 39, 2, 53,
53, 52, 75, 13, 71,
75, 87, 91, 86, 7,
82, 85, 54, 66, 33,
37, 77, 81, 26, 66,
10, 61, 74, 99, 59,
62, 53, 83, 87, 24,
60, 20, 54, 55, 76,
91, 22, 32, 46, 98,
45, 37, 8, 29, 72,
64, 52, 55, 33, 44,
58, 10, 81, 52, 43,
47, 47, 81, 28, 36,
6, 44, 48, 82, 15,
61, 42, 47, 59, 21,
81, 51, 100, 63, 7,
94, 6, 19, 73, 41,
15, 55, 86, 77, 100,
11, 59, 20, 68, 49,
42, 97, 95, 17, 84,
67, 99, 19, 55, 80,
57, 61, 87, 33, 36,
78, 9, 91, 33, 14,
94, 16, 35, 74, 19,
37, 92, 51, 65, 13,
94, 22, 98, 68, 19,
53, 74, 82, 61, 46,
3, 94, 30, 97, 43,
46, 55, 13, 76, 62,
34, 38, 45, 13, 60,
72, 9, 83, 11, 88,
68, 12, 12, 33, 91,
67, 39, 54, 4, 57,
22, 9, 7, 78, 4,
53, 7, 37, 57, 46,
25, 21, 91, 8, 29,
60, 36, 36, 88, 11,
34, 32, 82, 50, 48,
34, 86, 68, 62, 77,
14, 9, 34, 85, 53,
19, 96, 4, 52, 1,
49, 33, 7, 96, 30,
7, 5, 14, 72, 96,
71, 97, 86, 2, 69,
26, 1, 74, 94, 15,
15, 17, 50, 13, 97,
53, 60, 56, 18, 36,
67, 89, 11, 12, 71,
87, 2, 24, 10, 4,
11, 12, 80, 57, 37,
46, 11, 52, 61, 14,
32, 45, 78, 12, 20,
90, 14, 67, 15, 65,
83, 91, 73, 45, 89,
70, 71, 39, 59, 63,
53, 42, 47, 20, 44,
27, 56, 85, 24, 23,
48, 55, 61, 42, 25,
47, 48, 70, 82, 88,
91, 92, 45, 69, 90,
25, 81, 31, 25, 41,
37, 42, 87, 47, 25,
4, 3, 80, 35, 40,
17, 68, 98, 84, 95,
94, 27, 99, 29, 9,
73, 55, 35, 78, 95,
96, 71, 35, 88, 81,
3, 47, 62, 47, 25,
72, 4, 7, 21, 31,
13, 18, 95, 58, 43,
73, 63, 10, 82, 47,
66, 69, 19, 61, 71,
77, 60, 33, 99, 71,
81, 96, 90, 55, 25,
29, 91, 8, 89, 34,
6, 8, 27, 46, 45,
15, 2, 82, 84, 63,
59, 98, 8, 68, 46,
32, 90, 50, 86, 98,
17, 58, 18, 82, 45,
56, 84, 42, 20, 48,
82, 79, 100, 89, 46,
20, 97, 24, 67, 91,
19, 27, 80, 4, 82,
41, 11, 91, 79, 60,
76, 59, 73, 21, 10,
17, 44, 66, 41, 73,
39, 93, 61, 50, 99,
92, 53, 6, 16, 41,
93, 16, 28, 58, 32,
31, 9, 57, 7, 3,
20, 13, 52, 18, 6,
47, 69, 82, 68, 82,
52, 75, 3, 65, 30,
43, 14, 100, 39, 54,
8, 61, 15, 70, 77,
1, 19, 45, 59, 14,
25, 54, 31, 42, 7,
47, 72, 90, 33, 69,
40, 81, 66, 41, 69,
32, 51, 77, 73, 98,
12, 29, 77, 19, 34,
85, 21, 26, 68, 37,
75, 65, 87, 31, 74,
61, 73, 50, 55, 87,
92, 14, 43, 46, 35,
60, 77, 69, 85, 98,
80, 79, 68, 76, 53,
53, 53, 18, 26, 46,
57, 83, 100, 76, 89,
37, 73, 2, 65, 58,
65, 48, 19, 46, 65,
25, 3, 84, 64, 86,
63, 42, 20, 91, 82,
92, 54, 9, 6, 1,
65, 63, 71, 39, 98,
71, 9, 95, 9, 49,
22, 93, 80, 49, 52,
5, 78, 47, 92, 26,
80, 76, 15, 85, 34,
55, 92, 43, 7, 98,
13, 24, 61, 41, 37,
42, 38, 95, 43, 15,
70, 50, 1, 100, 6,
14, 50, 1, 65, 22,
27, 84, 46, 18, 54,
9, 68, 74, 59, 5,
22, 26, 44, 51, 65,
31, 42, 17, 78, 81,
20, 92, 72, 89, 96,
24, 7, 57, 85, 54,
16, 19, 37, 79, 75,
95, 92, 12, 29, 78,
84, 11, 26, 6, 6,
61, 25, 22, 76, 81,
7, 97, 68, 10, 72,
95, 53, 45, 16, 96,
18, 95, 15, 35, 17,
90, 69, 65, 70, 1,
23, 61, 18, 87, 19,
16, 26, 45, 23, 86,
74, 82, 39, 7, 65,
59, 86, 17, 14, 50,
65, 93, 43, 89, 82,
30, 41, 10, 19, 74,
81, 38, 88, 37, 10,
3, 57, 95, 28, 61,
26, 8, 14, 74, 22,
74, 70, 64, 34, 59,
45, 22, 63, 32, 46,
15, 14, 93, 10, 80,
1, 64, 80, 3, 77,
60, 3, 33, 89, 20,
55, 73, 99, 63, 3,
28, 16, 14, 95, 57,
62, 57, 98, 5, 45,
65, 24, 21, 88, 91,
49, 80, 52, 49, 49,
52, 7, 83, 63, 77,
96, 15, 95, 13, 98,
65, 44, 32, 57, 71,
57, 16, 70, 70, 9,
48, 55, 2, 42, 75,
23, 65, 77, 28, 20,
25, 58, 79, 65, 11,
60, 95, 64, 48, 88,
66, 52, 53, 28, 15,
99, 26, 63, 83, 36,
53, 45, 78, 92, 3,
93, 79, 2, 79, 85,
50, 65, 44, 56, 36,
28, 77, 8, 12, 59,
43, 28, 63, 84, 75,
38, 84, 75, 20, 25,
9, 89, 55, 61, 32,
67, 34, 75, 41, 54,
52, 59, 96, 89, 24,
12, 95, 52, 64, 50,
28, 94, 7, 77, 49,
18, 13, 89, 23, 67,
28, 34, 18, 100, 93,
31, 58, 17, 22, 49,
7, 84, 81, 31, 70,
80, 1, 48, 24, 74,
46, 22, 87, 25, 19,
14, 57, 73, 29, 66,
19, 1, 13, 45, 19,
28, 93, 84, 84, 30,
31, 39, 62, 80, 1,
79, 72, 47, 2, 61,
100, 62, 33, 32, 48,
48, 94, 68, 36, 64,
23, 95, 59, 62, 97,
63, 62, 10, 16, 86,
80, 45, 86, 51, 14,
68, 40, 16, 35, 48,
89, 49, 69, 4, 47,
31, 47, 22, 44, 58,
35, 85, 71, 59, 2,
14, 5, 49, 3, 22,
2, 83, 11, 2, 91,
51, 84, 1, 93, 34,
77, 24, 26, 77, 62,
42, 80, 22, 76, 67,
45, 58, 5, 25, 14,
52, 94, 57, 60, 48,
80, 71, 64, 1, 99,
10, 49, 75, 81, 59,
1, 51, 3, 26, 70,
97, 38, 55, 97, 1,
37, 92, 24, 11, 45,
36, 1, 73, 2, 18,
71, 64, 94, 54, 37,
37, 9, 88, 55, 84,
8, 85, 33, 67, 15,
12, 95, 14, 84, 32,
60, 28, 58, 29, 39,
38, 51, 92, 24, 64,
86, 23, 76, 43, 49,
65, 97, 92, 62, 22,
53, 6, 46, 67, 95,
21, 80, 87, 73, 54,
75, 44, 35, 29, 81,
50, 55, 29, 2, 47,
64, 42, 79, 75, 87,
78, 75, 61, 5, 51,
63, 58, 58, 33, 83,
26, 90, 25, 28, 99,
2, 40, 9, 57, 80,
30, 3, 16, 89, 24,
45, 33, 50, 76, 49,
31, 17, 41, 98, 56,
95, 70, 83, 73, 68,
16, 13, 42, 86, 29,
51, 57, 10, 87, 84,
88, 9, 15, 100, 39,
73, 28, 32, 69, 61,
87, 5, 32, 43, 54,
65, 79, 33, 51, 81,
75, 93, 73, 26, 55,
53, 37, 49, 24, 43,
66, 9, 51, 20, 21,
9, 70, 11, 94, 64,
68, 56, 25, 26, 60,
27, 16, 47, 63, 77,
82, 16, 16, 97, 40,
5, 40, 60, 84, 64,
85, 29, 26, 17, 75,
66, 68, 75, 10, 96,
61, 21, 5, 46, 68,
30, 40, 22, 85, 3,
68, 88, 37, 10, 12,
98, 47, 29, 84, 94,
38, 30, 71, 97, 41,
68, 28, 95, 50, 14,
4, 10, 68, 82, 14,
81, 85, 4, 3, 50,
32, 68, 14, 29, 43,
22, 44, 74, 38, 23,
3, 32, 58, 18, 50,
4, 76, 97, 78, 82,
39, 31, 60, 9, 64,
89, 87, 69, 44, 25,
8, 23, 55, 57, 98,
24, 15, 75, 22, 68,
79, 25, 25, 93, 77,
66, 19, 21, 45, 27,
94, 47, 5, 97, 27,
54, 64, 31, 44, 31,
61, 11, 84, 19, 79,
93, 4, 80, 32, 78,
36, 1, 43, 100, 16,
87, 25, 79, 20, 97,
38, 29, 52, 46, 76,
72, 10, 14, 41, 2,
65, 46, 5, 40, 38,
88, 1, 85, 37, 53,
58, 16, 48, 62, 5,
71, 44, 69, 35, 93,
10, 23, 100, 69, 82,
57, 33, 43, 21, 69,
38, 79, 86, 86, 80,
49, 23, 45, 23, 48,
19, 57, 84, 25, 35,
35, 10, 6, 83, 23,
33, 100, 78, 2, 32,
7, 57, 15, 55, 89,
16, 15, 97, 53, 85,
23, 90, 29, 5, 53,
12, 97, 55, 47, 17,
78, 91, 82, 55, 70,
100, 5, 17, 38, 73,
88, 27, 31, 85, 16,
21, 41, 13, 98, 47,
69, 21, 36, 87, 3,
61, 4, 91, 8, 64,
92, 51, 61, 79, 100,
27, 100, 24, 51, 37,
72, 60, 43, 38, 9,
48, 37, 79, 95, 97,
8, 77, 8, 36, 93,
24, 100, 27, 46, 16,
14, 69, 74, 63, 70,
43, 62, 29, 12, 23,
40, 53, 59, 75, 12,
89, 30, 29, 54, 34,
51, 93, 53, 74, 100,
92, 77, 11, 48, 73,
81, 75, 68, 20, 30,
61, 19, 99, 89, 23,
31, 66, 37, 76, 81,
76, 68, 47, 93, 4,
10, 86, 94, 53, 56,
100, 34, 14, 28, 34,
25, 85, 31, 7, 66,
29, 42, 16, 29, 53,
31, 61, 85, 51, 17,
18, 46, 89, 13, 49,
33, 37, 97, 14, 33,
88, 13, 66, 35, 54,
57, 76, 53, 68, 44,
54, 3, 17, 75, 90,
93, 5, 79, 66, 42,
70, 78, 14, 89, 19,
96, 60, 7, 90, 32,
88, 93, 59, 30, 88,
11, 8, 53, 71, 65,
79, 19, 32, 92, 69,
61, 91, 29, 45, 1,
34, 9, 40, 63, 27,
51, 2, 59, 48, 50,
5, 19, 64, 28, 88,
3, 35, 66, 2, 80,
6, 50, 31, 70, 78,
85, 51, 47, 77, 51,
15, 74, 73, 71, 70,
47, 90, 87, 24, 31,
58, 69, 33, 52, 95,
95, 20, 29, 80, 48,
57, 47, 21, 94, 44,
22, 47, 40, 30, 61,
66, 59, 59, 75, 60,
94, 98, 4, 26, 17,
64, 22, 64, 12, 97,
77, 75, 21, 89, 20,
88, 64, 82, 85, 29,
17, 41, 71, 28, 76,
13, 94, 99, 17, 53,
24, 24, 54, 100, 84,
12, 78, 97, 66, 1,
48, 73, 32, 3, 82,
80, 28, 85, 17, 59,
80, 2, 92, 28, 32,
89, 63, 10, 98, 16,
97, 58, 81, 1, 10,
50, 100, 80, 80, 62,
17, 73, 45, 73, 39,
92, 74, 5, 53, 70,
65, 17, 40, 51, 21,
42, 89, 56, 26, 24,
11, 69, 22, 82, 24,
98, 24, 52, 21, 31,
34, 46, 6, 44, 52,
74, 16, 64, 56, 11,
59, 17, 27, 27, 68,
7, 73, 80, 44, 70,
11, 86, 65, 100, 93,
90, 95, 2, 66, 17,
15, 30, 96, 3, 33,
40, 88, 9, 70, 48,
18, 72, 46, 100, 16,
73, 1, 50, 54, 56,
36, 100, 25, 81, 70,
42, 53, 30, 42, 43,
27, 81, 49, 76, 56,
5, 45, 86, 13, 32,
16, 75, 64, 66, 32,
76, 86, 50, 59, 34,
45, 30, 63, 81, 82,
18, 53, 14, 17, 19,
96, 54, 70, 71, 87,
72, 2, 60, 58, 59,
22, 51, 5, 29, 32,
68, 57, 44, 81, 72,
20, 55, 75, 82, 57,
99, 6, 20, 13, 51,
18, 70, 62, 85, 15,
72, 4, 69, 24, 70,
55, 100, 28, 58, 14,
18, 3, 98, 70, 97,
71, 46, 91, 70, 60,
2, 87, 72, 43, 96,
72, 63, 23, 15, 27,
28, 93, 95, 47, 75,
16, 77, 78, 21, 1,
85, 69, 77, 96, 82,
43, 37, 98, 93, 41,
30, 86, 52, 32, 28,
44, 12, 25, 35, 37,
93, 29, 89, 47, 57,
63, 41, 34, 34, 66,
91, 42, 100, 93, 44,
57, 2, 69, 46, 29,
53, 61, 90, 48, 62,
38, 81, 55, 62, 1,
32, 32, 97, 8, 38,
1, 81, 18, 58, 22,
10, 94, 42, 38, 67,
19, 71, 73, 76, 60,
90, 60, 51, 35, 51,
57, 45, 45, 94, 59,
86, 90, 13, 48, 86,
60, 39, 70, 6, 4,
32, 77, 53, 9, 22,
73, 25, 7, 41, 8,
87, 6, 3, 55, 17,
28, 68, 33, 90, 9,
79, 26, 70, 89, 52,
5, 10, 48, 38, 65,
43, 11, 84, 30, 64,
83, 60, 19, 59, 89,
9, 53, 12, 89, 63,
14, 89, 86, 44, 35,
98, 49, 74, 45, 41,
100, 90, 34, 91, 14,
100, 55, 89, 96, 78,
34, 88, 55, 92, 55,
47, 96, 65, 69, 50,
39, 64, 6, 59, 2,
87, 65, 6, 8, 4,
64, 37, 75, 10, 18,
68, 14, 44, 77, 94,
37, 60, 79, 89, 97,
4, 70, 12, 65, 87,
77, 8, 94, 100, 70,
51, 17, 81, 99, 11,
90, 11, 85, 10, 58,
100, 93, 3, 74, 33,
21, 16, 4, 71, 1,
29, 49, 55, 83, 91,
15, 89, 33, 55, 33,
15, 65, 48, 78, 44,
20, 76, 19, 59, 59,
67, 60, 97, 81, 49,
24, 88, 99, 16, 50,
25, 69, 50, 34, 86,
78, 27, 45, 94, 42,
58, 82, 56, 54, 76,
8, 45, 50, 22, 45,
98, 12, 1, 55, 48,
33, 52, 95, 74, 33,
13, 47, 35, 9, 37,
15, 29, 76, 58, 81,
35, 61, 21, 87, 5,
94, 12, 42, 33, 60,
87, 22, 75, 93, 54,
87, 87, 13, 89, 83,
92, 16, 42, 34, 84,
9, 12, 8, 11, 25,
35, 100, 78, 96, 92,
51, 39, 44, 19, 85,
74, 3, 49, 78, 51,
17, 26, 95, 16, 56,
34, 69, 96, 3, 2,
40, 26, 63, 16, 59,
21, 82, 86, 5, 30,
26, 87, 9, 20, 7,
77, 25, 76, 76, 27,
42, 74, 71, 85, 97,
85, 71, 5, 37, 70,
62, 52, 40, 69, 71,
2, 84, 86, 92, 13,
87, 2, 25, 71, 97,
47, 23, 97, 58, 73,
65, 50, 58, 59, 44,
72, 55, 66, 20, 83,
28, 82, 17, 92, 67,
1, 91, 12, 41, 73,
17, 3, 56, 88, 37,
35, 1, 5, 60, 22,
46, 52, 99, 33, 50,
95, 25, 58, 30, 81,
42, 33, 95, 45, 15,
57, 91, 54, 88, 31,
54, 73, 72, 16, 61,
65, 75, 16, 57, 62,
28, 63, 27, 66, 99,
88, 70, 99, 81, 75,
5, 50, 18, 58, 49,
32, 33, 36, 75, 85,
93, 55, 91, 63, 59,
27, 50, 3, 7, 47,
68, 85, 51, 27, 83,
48, 40, 79, 21, 47,
32, 31, 60, 7, 83,
43, 29, 19, 29, 67,
97, 89, 69, 9, 28,
32, 79, 23, 26, 30,
31, 62, 48, 44, 97,
63, 44, 20, 96, 90,
36, 18, 85, 14, 82,
85, 29, 71, 8, 93,
48, 42, 57, 87, 98,
99, 73, 97, 64, 71,
15, 70, 44, 97, 22,
95, 53, 7, 48, 9,
40, 42, 3, 70, 97,
62, 91, 15, 50, 52,
69, 97, 7, 38, 4,
31, 71, 34, 3, 9,
100, 13, 69, 61, 23,
14, 93, 16, 25, 23,
54, 82, 72, 30, 4,
12, 75, 72, 89, 43,
19, 22, 100, 52, 79,
48, 85, 82, 27, 44,
44, 61, 26, 93, 74,
83, 38, 57, 38, 4,
85, 36, 76, 16, 78,
51, 24, 79, 71, 20,
2, 89, 31, 90, 80,
80, 96, 13, 85, 27,
42, 22, 15, 81, 29,
96, 76, 69, 12, 56,
72, 88, 3, 12, 91,
70, 72, 96, 83, 17,
40, 36, 69, 20, 40,
27, 19, 81, 75, 69,
12, 29, 56, 44, 62,
85, 78, 42, 10, 66,
80, 36, 16, 21, 47,
12, 65, 83, 81, 26,
2, 88, 81, 6, 99,
94, 76, 78, 41, 44,
42, 89, 36, 37, 15,
67, 65, 44, 39, 40,
87, 85, 16, 13, 11,
53, 4, 50, 45, 82,
96, 50, 66, 21, 41,
73, 39, 66, 31, 64,
60, 94, 27, 93, 25,
9, 17, 59, 34, 21,
46, 53, 77, 62, 33,
39, 2, 15, 5, 11,
49, 1, 76, 51, 100,
60, 42, 63, 14, 32,
28, 63, 47, 95, 79,
16, 67, 46, 36, 84,
25, 2, 86, 7, 65,
68, 36, 69, 92, 76,
74, 11, 36, 5, 79,
7, 75, 56, 81, 88,
84, 71, 60, 97, 30,
8, 89, 67, 89, 51,
62, 81, 44, 51, 4,
28, 82, 24, 13, 72,
1, 16, 6, 49, 51,
24, 21, 25, 59, 82,
35, 92, 75, 90, 52,
30, 44, 79, 6, 95,
91, 18, 16, 65, 35,
92, 97, 30, 4, 82,
5, 27, 16, 32, 23,
73, 99, 83, 87, 84,
38, 56, 87, 25, 91,
69, 46, 64, 64, 27,
74, 87, 71, 8, 27,
25, 3, 25, 28, 56,
69, 58, 2, 9, 43,
24, 29, 61, 78, 93,
9, 67, 86, 59, 53,
18, 5, 30, 18, 99,
87, 99, 5, 62, 79,
99, 77, 19, 50, 41,
69, 45, 4, 82, 68,
38, 67, 18, 47, 33,
76, 69, 69, 85, 29,
27, 59, 32, 1, 72,
63, 85, 3, 88, 45,
23, 64, 95, 79, 55,
75, 78, 77, 10, 30,
31, 48, 58, 100, 10,
4, 98, 41, 30, 89,
47, 45, 14, 78, 84,
20, 24, 20, 94, 91,
54, 60, 37, 81, 11,
7, 39, 57, 33, 87,
8, 22, 86, 66, 35,
82, 10, 80, 19, 80,
100, 57, 11, 74, 8,
39, 53, 96, 84, 25,
52, 82, 68, 5, 19,
63, 29, 71, 72, 18,
33, 14, 18, 62, 81,
15, 20, 100, 85, 51,
54, 42, 42, 2, 49,
73, 73, 17, 10, 84,
33, 32, 66, 36, 52,
11, 69, 56, 10, 98,
3, 43, 16, 49, 24,
16, 45, 30, 82, 27,
30, 98, 4, 5, 57,
22, 56, 79, 91, 47,
66, 11, 25, 12, 33,
11, 69, 14, 39, 2,
7, 55, 5, 55, 29,
13, 43, 25, 10, 52,
98, 5, 60, 47, 85,
19, 93, 78, 71, 84,
84, 82, 81, 14, 63,
60, 74, 52, 9, 41,
60, 46, 11, 42, 27,
6, 20, 13, 64, 25,
21, 97, 89, 97, 52,
11, 83, 70, 77, 54,
59, 88, 98, 58, 65,
100, 78, 100, 55, 49,
9, 12, 83, 70, 52,
99, 10, 12, 7, 100,
58, 40, 20, 3, 60,
10, 27, 85, 72, 35,
88, 48, 53, 84, 57,
61, 84, 16, 92, 37,
8, 44, 57, 80, 56,
64, 51, 6, 52, 45,
17, 31, 94, 77, 77,
94, 72, 23, 7, 4,
4, 92, 51, 52, 90,
54, 68, 74, 83, 37,
7, 92, 91, 17, 1,
68, 55, 25, 45, 40,
91, 5, 16, 100, 86,
3, 26, 67, 25, 31,
73, 83, 9, 79, 71,
8, 44, 96, 96, 63,
98, 71, 5, 69, 93,
32, 22, 76, 87, 66,
18, 53, 89, 1, 69,
53, 89, 56, 74, 59,
40, 30, 5, 83, 55,
65, 16, 34, 100, 52,
68, 85, 55, 47, 35,
47, 93, 74, 67, 13,
51, 95, 97, 83, 35,
8, 16, 87, 88, 59,
91, 8, 97, 71, 96,
43
};
uint64 CResult = GetMeasureForAdd(4096, NumbersToSum);
uint64 end = __rdtsc();
uint64 ticks = end - start;
uint64 jsTicks, wasmTicks;
printf("Result from C: %llu\n", CResult);
printf("Total processor ticks in C: %llu\n", ticks);
// Initialize V8.
v8::V8::InitializeICUDefaultLocation(argv[0]);
v8::V8::InitializeExternalStartupData(argv[0]);
std::unique_ptr<v8::Platform> platform = v8::platform::NewDefaultPlatform();
v8::V8::InitializePlatform(platform.get());
v8::V8::Initialize();
// Create a new Isolate and make it the current one.
v8::Isolate::CreateParams create_params;
create_params.array_buffer_allocator =
v8::ArrayBuffer::Allocator::NewDefaultAllocator();
v8::Isolate* isolate = v8::Isolate::New(create_params);
{
v8::Isolate::Scope isolate_scope(isolate);
// Create a stack-allocated handle scope.
v8::HandleScope handle_scope(isolate);
// Create a new context.
v8::Local<v8::Context> context = v8::Context::New(isolate);
// Enter the context for compiling and running the hello world script.
v8::Context::Scope context_scope(context);
#if 1
{
// Create a string containing the JavaScript source code.
v8::Local<v8::String> source =
v8::String::NewFromUtf8Literal(isolate,
R"(
const Nums = new Uint32Array([
4, 68, 10, 6, 72,
63, 82, 71, 22, 7,
78, 19, 87, 14, 27,
64, 71, 22, 79, 14,
36, 36, 18, 21, 77,
88, 90, 36, 29, 28,
70, 18, 78, 31, 5,
33, 73, 85, 15, 50,
70, 93, 83, 99, 80,
78, 62, 24, 41, 12,
36, 24, 36, 7, 95,
91, 43, 16, 36, 33,
50, 46, 25, 82, 73,
30, 21, 56, 95, 45,
94, 45, 48, 23, 68,
70, 27, 54, 30, 78,
11, 87, 98, 33, 64,
37, 74, 4, 61, 86,
91, 48, 38, 5, 46,
9, 78, 37, 10, 21,
66, 37, 50, 52, 29,
27, 14, 91, 36, 94,
85, 9, 23, 2, 14,
72, 82, 36, 46, 94,
5, 7, 94, 53, 97,
18, 94, 18, 13, 35,
45, 49, 4, 54, 89,
90, 68, 31, 21, 72,
58, 12, 16, 48, 25,
17, 20, 31, 41, 71,
13, 85, 92, 24, 55,
79, 22, 45, 94, 21,
35, 31, 43, 26, 86,
35, 43, 40, 36, 66,
46, 63, 34, 1, 18,
85, 28, 4, 28, 44,
5, 18, 4, 16, 83,
8, 61, 15, 43, 2,
20, 22, 26, 82, 35,
11, 63, 70, 15, 80,
98, 34, 2, 39, 11,
32, 44, 93, 99, 5,
75, 98, 38, 71, 4,
20, 88, 53, 2, 23,
76, 12, 30, 95, 24,
21, 58, 15, 61, 88,
12, 84, 84, 39, 24,
49, 65, 75, 50, 32,
57, 86, 51, 85, 71,
98, 30, 43, 27, 33,
32, 17, 82, 11, 50,
40, 4, 5, 25, 93,
64, 35, 86, 97, 24,
59, 29, 64, 47, 38,
87, 25, 94, 80, 10,
37, 59, 43, 16, 27,
21, 75, 93, 67, 94,
74, 43, 53, 6, 7,
63, 72, 69, 60, 14,
30, 77, 8, 39, 35,
68, 92, 86, 24, 42,
95, 42, 32, 71, 88,
42, 51, 33, 63, 63,
41, 52, 12, 66, 55,
39, 70, 92, 84, 33,
3, 55, 26, 93, 17,
43, 63, 25, 68, 28,
77, 1, 35, 67, 72,
33, 74, 42, 86, 5,
25, 98, 73, 4, 27,
54, 68, 88, 10, 94,
66, 12, 8, 13, 12,
24, 78, 14, 23, 80,
23, 31, 22, 83, 12,
83, 73, 15, 84, 90,
46, 58, 80, 84, 93,
95, 20, 54, 59, 53,
69, 61, 50, 56, 7,
20, 22, 82, 24, 37,
76, 15, 21, 14, 85,
76, 59, 22, 31, 15,
78, 29, 68, 87, 50,
10, 30, 84, 59, 78,
66, 93, 89, 78, 89,
52, 97, 55, 26, 35,
77, 37, 52, 47, 56,
26, 90, 49, 75, 51,
81, 85, 38, 78, 21,
18, 36, 70, 53, 7,
37, 80, 81, 7, 86,
59, 15, 61, 71, 71,
56, 15, 19, 79, 81,
37, 45, 73, 85, 29,
68, 45, 96, 51, 39,
9, 78, 4, 60, 6,
42, 57, 6, 52, 11,
15, 50, 91, 54, 37,
1, 43, 61, 1, 97,
58, 75, 41, 99, 47,
29, 100, 75, 65, 65,
79, 44, 78, 20, 61,
49, 63, 69, 54, 84,
40, 91, 15, 45, 10,
31, 36, 83, 76, 78,
3, 66, 85, 20, 47,
50, 95, 20, 45, 33,
14, 13, 5, 67, 14,
47, 22, 67, 97, 74,
90, 7, 93, 53, 100,
78, 32, 82, 73, 27,
97, 49, 27, 79, 12,
71, 1, 67, 21, 9,
24, 86, 16, 97, 95,
59, 32, 9, 48, 93,
79, 22, 10, 97, 97,
4, 68, 93, 60, 55,
80, 75, 52, 50, 50,
98, 37, 71, 97, 4,
23, 98, 2, 44, 94,
19, 74, 29, 6, 34,
79, 74, 53, 90, 100,
99, 87, 61, 38, 94,
49, 21, 74, 68, 88,
22, 92, 88, 84, 97,
17, 44, 42, 9, 74,
22, 41, 79, 72, 35,
26, 34, 21, 61, 18,
33, 86, 54, 94, 89,
63, 62, 78, 60, 16,
95, 89, 52, 6, 8,
84, 73, 23, 64, 21,
52, 78, 15, 84, 75,
88, 41, 63, 47, 23,
41, 19, 72, 39, 7,
19, 83, 11, 70, 40,
67, 43, 78, 53, 98,
91, 40, 19, 46, 50,
58, 41, 89, 10, 64,
87, 38, 56, 77, 88,
18, 98, 47, 5, 79,
35, 30, 32, 63, 74,
21, 61, 45, 53, 40,
23, 22, 87, 94, 37,
17, 89, 85, 13, 38,
47, 41, 85, 29, 27,
20, 77, 7, 54, 2,
85, 91, 30, 19, 96,
42, 16, 24, 16, 25,
86, 35, 41, 41, 60,
13, 2, 66, 86, 88,
52, 22, 8, 43, 58,
15, 79, 44, 87, 7,
73, 53, 59, 86, 99,
90, 71, 38, 17, 73,
81, 84, 93, 57, 11,
18, 41, 11, 82, 5,
67, 18, 23, 18, 60,
38, 25, 89, 47, 63,
13, 53, 53, 90, 12,
36, 57, 65, 67, 94,
1, 94, 72, 85, 45,
60, 84, 80, 27, 27,
68, 33, 8, 4, 43,
91, 23, 94, 63, 50,
31, 69, 75, 24, 84,
5, 45, 56, 69, 3,
97, 8, 1, 13, 76,
46, 73, 97, 34, 79,
51, 14, 96, 98, 84,
91, 45, 27, 51, 97,
3, 32, 70, 70, 62,
64, 96, 10, 21, 91,
17, 96, 14, 49, 79,
68, 17, 39, 2, 53,
53, 52, 75, 13, 71,
75, 87, 91, 86, 7,
82, 85, 54, 66, 33,
37, 77, 81, 26, 66,
10, 61, 74, 99, 59,
62, 53, 83, 87, 24,
60, 20, 54, 55, 76,
91, 22, 32, 46, 98,
45, 37, 8, 29, 72,
64, 52, 55, 33, 44,
58, 10, 81, 52, 43,
47, 47, 81, 28, 36,
6, 44, 48, 82, 15,
61, 42, 47, 59, 21,
81, 51, 100, 63, 7,
94, 6, 19, 73, 41,
15, 55, 86, 77, 100,
11, 59, 20, 68, 49,
42, 97, 95, 17, 84,
67, 99, 19, 55, 80,
57, 61, 87, 33, 36,
78, 9, 91, 33, 14,
94, 16, 35, 74, 19,
37, 92, 51, 65, 13,
94, 22, 98, 68, 19,
53, 74, 82, 61, 46,
3, 94, 30, 97, 43,
46, 55, 13, 76, 62,
34, 38, 45, 13, 60,
72, 9, 83, 11, 88,
68, 12, 12, 33, 91,
67, 39, 54, 4, 57,
22, 9, 7, 78, 4,
53, 7, 37, 57, 46,
25, 21, 91, 8, 29,
60, 36, 36, 88, 11,
34, 32, 82, 50, 48,
34, 86, 68, 62, 77,
14, 9, 34, 85, 53,
19, 96, 4, 52, 1,
49, 33, 7, 96, 30,
7, 5, 14, 72, 96,
71, 97, 86, 2, 69,
26, 1, 74, 94, 15,
15, 17, 50, 13, 97,
53, 60, 56, 18, 36,
67, 89, 11, 12, 71,
87, 2, 24, 10, 4,
11, 12, 80, 57, 37,
46, 11, 52, 61, 14,
32, 45, 78, 12, 20,
90, 14, 67, 15, 65,
83, 91, 73, 45, 89,
70, 71, 39, 59, 63,
53, 42, 47, 20, 44,
27, 56, 85, 24, 23,
48, 55, 61, 42, 25,
47, 48, 70, 82, 88,
91, 92, 45, 69, 90,
25, 81, 31, 25, 41,
37, 42, 87, 47, 25,
4, 3, 80, 35, 40,
17, 68, 98, 84, 95,
94, 27, 99, 29, 9,
73, 55, 35, 78, 95,
96, 71, 35, 88, 81,
3, 47, 62, 47, 25,
72, 4, 7, 21, 31,
13, 18, 95, 58, 43,
73, 63, 10, 82, 47,
66, 69, 19, 61, 71,
77, 60, 33, 99, 71,
81, 96, 90, 55, 25,
29, 91, 8, 89, 34,
6, 8, 27, 46, 45,
15, 2, 82, 84, 63,
59, 98, 8, 68, 46,
32, 90, 50, 86, 98,
17, 58, 18, 82, 45,
56, 84, 42, 20, 48,
82, 79, 100, 89, 46,
20, 97, 24, 67, 91,
19, 27, 80, 4, 82,
41, 11, 91, 79, 60,
76, 59, 73, 21, 10,
17, 44, 66, 41, 73,
39, 93, 61, 50, 99,
92, 53, 6, 16, 41,
93, 16, 28, 58, 32,
31, 9, 57, 7, 3,
20, 13, 52, 18, 6,
47, 69, 82, 68, 82,
52, 75, 3, 65, 30,
43, 14, 100, 39, 54,
8, 61, 15, 70, 77,
1, 19, 45, 59, 14,
25, 54, 31, 42, 7,
47, 72, 90, 33, 69,
40, 81, 66, 41, 69,
32, 51, 77, 73, 98,
12, 29, 77, 19, 34,
85, 21, 26, 68, 37,
75, 65, 87, 31, 74,
61, 73, 50, 55, 87,
92, 14, 43, 46, 35,
60, 77, 69, 85, 98,
80, 79, 68, 76, 53,
53, 53, 18, 26, 46,
57, 83, 100, 76, 89,
37, 73, 2, 65, 58,
65, 48, 19, 46, 65,
25, 3, 84, 64, 86,
63, 42, 20, 91, 82,
92, 54, 9, 6, 1,
65, 63, 71, 39, 98,
71, 9, 95, 9, 49,
22, 93, 80, 49, 52,
5, 78, 47, 92, 26,
80, 76, 15, 85, 34,
55, 92, 43, 7, 98,
13, 24, 61, 41, 37,
42, 38, 95, 43, 15,
70, 50, 1, 100, 6,
14, 50, 1, 65, 22,
27, 84, 46, 18, 54,
9, 68, 74, 59, 5,
22, 26, 44, 51, 65,
31, 42, 17, 78, 81,
20, 92, 72, 89, 96,
24, 7, 57, 85, 54,
16, 19, 37, 79, 75,
95, 92, 12, 29, 78,
84, 11, 26, 6, 6,
61, 25, 22, 76, 81,
7, 97, 68, 10, 72,
95, 53, 45, 16, 96,
18, 95, 15, 35, 17,
90, 69, 65, 70, 1,
23, 61, 18, 87, 19,
16, 26, 45, 23, 86,
74, 82, 39, 7, 65,
59, 86, 17, 14, 50,
65, 93, 43, 89, 82,
30, 41, 10, 19, 74,
81, 38, 88, 37, 10,
3, 57, 95, 28, 61,
26, 8, 14, 74, 22,
74, 70, 64, 34, 59,
45, 22, 63, 32, 46,
15, 14, 93, 10, 80,
1, 64, 80, 3, 77,
60, 3, 33, 89, 20,
55, 73, 99, 63, 3,
28, 16, 14, 95, 57,
62, 57, 98, 5, 45,
65, 24, 21, 88, 91,
49, 80, 52, 49, 49,
52, 7, 83, 63, 77,
96, 15, 95, 13, 98,
65, 44, 32, 57, 71,
57, 16, 70, 70, 9,
48, 55, 2, 42, 75,
23, 65, 77, 28, 20,
25, 58, 79, 65, 11,
60, 95, 64, 48, 88,
66, 52, 53, 28, 15,
99, 26, 63, 83, 36,
53, 45, 78, 92, 3,
93, 79, 2, 79, 85,
50, 65, 44, 56, 36,
28, 77, 8, 12, 59,
43, 28, 63, 84, 75,
38, 84, 75, 20, 25,
9, 89, 55, 61, 32,
67, 34, 75, 41, 54,
52, 59, 96, 89, 24,
12, 95, 52, 64, 50,
28, 94, 7, 77, 49,
18, 13, 89, 23, 67,
28, 34, 18, 100, 93,
31, 58, 17, 22, 49,
7, 84, 81, 31, 70,
80, 1, 48, 24, 74,
46, 22, 87, 25, 19,
14, 57, 73, 29, 66,
19, 1, 13, 45, 19,
28, 93, 84, 84, 30,
31, 39, 62, 80, 1,
79, 72, 47, 2, 61,
100, 62, 33, 32, 48,
48, 94, 68, 36, 64,
23, 95, 59, 62, 97,
63, 62, 10, 16, 86,
80, 45, 86, 51, 14,
68, 40, 16, 35, 48,
89, 49, 69, 4, 47,
31, 47, 22, 44, 58,
35, 85, 71, 59, 2,
14, 5, 49, 3, 22,
2, 83, 11, 2, 91,
51, 84, 1, 93, 34,
77, 24, 26, 77, 62,
42, 80, 22, 76, 67,
45, 58, 5, 25, 14,
52, 94, 57, 60, 48,
80, 71, 64, 1, 99,
10, 49, 75, 81, 59,
1, 51, 3, 26, 70,
97, 38, 55, 97, 1,
37, 92, 24, 11, 45,
36, 1, 73, 2, 18,
71, 64, 94, 54, 37,
37, 9, 88, 55, 84,
8, 85, 33, 67, 15,
12, 95, 14, 84, 32,
60, 28, 58, 29, 39,
38, 51, 92, 24, 64,
86, 23, 76, 43, 49,
65, 97, 92, 62, 22,
53, 6, 46, 67, 95,
21, 80, 87, 73, 54,
75, 44, 35, 29, 81,
50, 55, 29, 2, 47,
64, 42, 79, 75, 87,
78, 75, 61, 5, 51,
63, 58, 58, 33, 83,
26, 90, 25, 28, 99,
2, 40, 9, 57, 80,
30, 3, 16, 89, 24,
45, 33, 50, 76, 49,
31, 17, 41, 98, 56,
95, 70, 83, 73, 68,
16, 13, 42, 86, 29,
51, 57, 10, 87, 84,
88, 9, 15, 100, 39,
73, 28, 32, 69, 61,
87, 5, 32, 43, 54,
65, 79, 33, 51, 81,
75, 93, 73, 26, 55,
53, 37, 49, 24, 43,
66, 9, 51, 20, 21,
9, 70, 11, 94, 64,
68, 56, 25, 26, 60,
27, 16, 47, 63, 77,
82, 16, 16, 97, 40,
5, 40, 60, 84, 64,
85, 29, 26, 17, 75,
66, 68, 75, 10, 96,
61, 21, 5, 46, 68,
30, 40, 22, 85, 3,
68, 88, 37, 10, 12,
98, 47, 29, 84, 94,
38, 30, 71, 97, 41,
68, 28, 95, 50, 14,
4, 10, 68, 82, 14,
81, 85, 4, 3, 50,
32, 68, 14, 29, 43,
22, 44, 74, 38, 23,
3, 32, 58, 18, 50,
4, 76, 97, 78, 82,
39, 31, 60, 9, 64,
89, 87, 69, 44, 25,
8, 23, 55, 57, 98,
24, 15, 75, 22, 68,
79, 25, 25, 93, 77,
66, 19, 21, 45, 27,
94, 47, 5, 97, 27,
54, 64, 31, 44, 31,
61, 11, 84, 19, 79,
93, 4, 80, 32, 78,
36, 1, 43, 100, 16,
87, 25, 79, 20, 97,
38, 29, 52, 46, 76,
72, 10, 14, 41, 2,
65, 46, 5, 40, 38,
88, 1, 85, 37, 53,
58, 16, 48, 62, 5,
71, 44, 69, 35, 93,
10, 23, 100, 69, 82,
57, 33, 43, 21, 69,
38, 79, 86, 86, 80,
49, 23, 45, 23, 48,
19, 57, 84, 25, 35,
35, 10, 6, 83, 23,
33, 100, 78, 2, 32,
7, 57, 15, 55, 89,
16, 15, 97, 53, 85,
23, 90, 29, 5, 53,
12, 97, 55, 47, 17,
78, 91, 82, 55, 70,
100, 5, 17, 38, 73,
88, 27, 31, 85, 16,
21, 41, 13, 98, 47,
69, 21, 36, 87, 3,
61, 4, 91, 8, 64,
92, 51, 61, 79, 100,
27, 100, 24, 51, 37,
72, 60, 43, 38, 9,
48, 37, 79, 95, 97,
8, 77, 8, 36, 93,
24, 100, 27, 46, 16,
14, 69, 74, 63, 70,
43, 62, 29, 12, 23,
40, 53, 59, 75, 12,
89, 30, 29, 54, 34,
51, 93, 53, 74, 100,
92, 77, 11, 48, 73,
81, 75, 68, 20, 30,
61, 19, 99, 89, 23,
31, 66, 37, 76, 81,
76, 68, 47, 93, 4,
10, 86, 94, 53, 56,
100, 34, 14, 28, 34,
25, 85, 31, 7, 66,
29, 42, 16, 29, 53,
31, 61, 85, 51, 17,
18, 46, 89, 13, 49,
33, 37, 97, 14, 33,
88, 13, 66, 35, 54,
57, 76, 53, 68, 44,
54, 3, 17, 75, 90,
93, 5, 79, 66, 42,
70, 78, 14, 89, 19,
96, 60, 7, 90, 32,
88, 93, 59, 30, 88,
11, 8, 53, 71, 65,
79, 19, 32, 92, 69,
61, 91, 29, 45, 1,
34, 9, 40, 63, 27,
51, 2, 59, 48, 50,
5, 19, 64, 28, 88,
3, 35, 66, 2, 80,
6, 50, 31, 70, 78,
85, 51, 47, 77, 51,
15, 74, 73, 71, 70,
47, 90, 87, 24, 31,
58, 69, 33, 52, 95,
95, 20, 29, 80, 48,
57, 47, 21, 94, 44,
22, 47, 40, 30, 61,
66, 59, 59, 75, 60,
94, 98, 4, 26, 17,
64, 22, 64, 12, 97,
77, 75, 21, 89, 20,
88, 64, 82, 85, 29,
17, 41, 71, 28, 76,
13, 94, 99, 17, 53,
24, 24, 54, 100, 84,
12, 78, 97, 66, 1,
48, 73, 32, 3, 82,
80, 28, 85, 17, 59,
80, 2, 92, 28, 32,
89, 63, 10, 98, 16,
97, 58, 81, 1, 10,
50, 100, 80, 80, 62,
17, 73, 45, 73, 39,
92, 74, 5, 53, 70,
65, 17, 40, 51, 21,
42, 89, 56, 26, 24,
11, 69, 22, 82, 24,
98, 24, 52, 21, 31,
34, 46, 6, 44, 52,
74, 16, 64, 56, 11,
59, 17, 27, 27, 68,
7, 73, 80, 44, 70,
11, 86, 65, 100, 93,
90, 95, 2, 66, 17,
15, 30, 96, 3, 33,
40, 88, 9, 70, 48,
18, 72, 46, 100, 16,
73, 1, 50, 54, 56,
36, 100, 25, 81, 70,
42, 53, 30, 42, 43,
27, 81, 49, 76, 56,
5, 45, 86, 13, 32,
16, 75, 64, 66, 32,
76, 86, 50, 59, 34,
45, 30, 63, 81, 82,
18, 53, 14, 17, 19,
96, 54, 70, 71, 87,
72, 2, 60, 58, 59,
22, 51, 5, 29, 32,
68, 57, 44, 81, 72,
20, 55, 75, 82, 57,
99, 6, 20, 13, 51,
18, 70, 62, 85, 15,
72, 4, 69, 24, 70,
55, 100, 28, 58, 14,
18, 3, 98, 70, 97,
71, 46, 91, 70, 60,
2, 87, 72, 43, 96,
72, 63, 23, 15, 27,
28, 93, 95, 47, 75,
16, 77, 78, 21, 1,
85, 69, 77, 96, 82,
43, 37, 98, 93, 41,
30, 86, 52, 32, 28,
44, 12, 25, 35, 37,
93, 29, 89, 47, 57,
63, 41, 34, 34, 66,
91, 42, 100, 93, 44,
57, 2, 69, 46, 29,
53, 61, 90, 48, 62,
38, 81, 55, 62, 1,
32, 32, 97, 8, 38,
1, 81, 18, 58, 22,
10, 94, 42, 38, 67,
19, 71, 73, 76, 60,
90, 60, 51, 35, 51,
57, 45, 45, 94, 59,
86, 90, 13, 48, 86,
60, 39, 70, 6, 4,
32, 77, 53, 9, 22,
73, 25, 7, 41, 8,
87, 6, 3, 55, 17,
28, 68, 33, 90, 9,
79, 26, 70, 89, 52,
5, 10, 48, 38, 65,
43, 11, 84, 30, 64,
83, 60, 19, 59, 89,
9, 53, 12, 89, 63,
14, 89, 86, 44, 35,
98, 49, 74, 45, 41,
100, 90, 34, 91, 14,
100, 55, 89, 96, 78,
34, 88, 55, 92, 55,
47, 96, 65, 69, 50,
39, 64, 6, 59, 2,
87, 65, 6, 8, 4,
64, 37, 75, 10, 18,
68, 14, 44, 77, 94,
37, 60, 79, 89, 97,
4, 70, 12, 65, 87,
77, 8, 94, 100, 70,
51, 17, 81, 99, 11,
90, 11, 85, 10, 58,
100, 93, 3, 74, 33,
21, 16, 4, 71, 1,
29, 49, 55, 83, 91,
15, 89, 33, 55, 33,
15, 65, 48, 78, 44,
20, 76, 19, 59, 59,
67, 60, 97, 81, 49,
24, 88, 99, 16, 50,
25, 69, 50, 34, 86,
78, 27, 45, 94, 42,
58, 82, 56, 54, 76,
8, 45, 50, 22, 45,
98, 12, 1, 55, 48,
33, 52, 95, 74, 33,
13, 47, 35, 9, 37,
15, 29, 76, 58, 81,
35, 61, 21, 87, 5,
94, 12, 42, 33, 60,
87, 22, 75, 93, 54,
87, 87, 13, 89, 83,
92, 16, 42, 34, 84,
9, 12, 8, 11, 25,
35, 100, 78, 96, 92,
51, 39, 44, 19, 85,
74, 3, 49, 78, 51,
17, 26, 95, 16, 56,
34, 69, 96, 3, 2,
40, 26, 63, 16, 59,
21, 82, 86, 5, 30,
26, 87, 9, 20, 7,
77, 25, 76, 76, 27,
42, 74, 71, 85, 97,
85, 71, 5, 37, 70,
62, 52, 40, 69, 71,
2, 84, 86, 92, 13,
87, 2, 25, 71, 97,
47, 23, 97, 58, 73,
65, 50, 58, 59, 44,
72, 55, 66, 20, 83,
28, 82, 17, 92, 67,
1, 91, 12, 41, 73,
17, 3, 56, 88, 37,
35, 1, 5, 60, 22,
46, 52, 99, 33, 50,
95, 25, 58, 30, 81,
42, 33, 95, 45, 15,
57, 91, 54, 88, 31,
54, 73, 72, 16, 61,
65, 75, 16, 57, 62,
28, 63, 27, 66, 99,
88, 70, 99, 81, 75,
5, 50, 18, 58, 49,
32, 33, 36, 75, 85,
93, 55, 91, 63, 59,
27, 50, 3, 7, 47,
68, 85, 51, 27, 83,
48, 40, 79, 21, 47,
32, 31, 60, 7, 83,
43, 29, 19, 29, 67,
97, 89, 69, 9, 28,
32, 79, 23, 26, 30,
31, 62, 48, 44, 97,
63, 44, 20, 96, 90,
36, 18, 85, 14, 82,
85, 29, 71, 8, 93,
48, 42, 57, 87, 98,
99, 73, 97, 64, 71,
15, 70, 44, 97, 22,
95, 53, 7, 48, 9,
40, 42, 3, 70, 97,
62, 91, 15, 50, 52,
69, 97, 7, 38, 4,
31, 71, 34, 3, 9,
100, 13, 69, 61, 23,
14, 93, 16, 25, 23,
54, 82, 72, 30, 4,
12, 75, 72, 89, 43,
19, 22, 100, 52, 79,
48, 85, 82, 27, 44,
44, 61, 26, 93, 74,
83, 38, 57, 38, 4,
85, 36, 76, 16, 78,
51, 24, 79, 71, 20,
2, 89, 31, 90, 80,
80, 96, 13, 85, 27,
42, 22, 15, 81, 29,
96, 76, 69, 12, 56,
72, 88, 3, 12, 91,
70, 72, 96, 83, 17,
40, 36, 69, 20, 40,
27, 19, 81, 75, 69,
12, 29, 56, 44, 62,
85, 78, 42, 10, 66,
80, 36, 16, 21, 47,
12, 65, 83, 81, 26,
2, 88, 81, 6, 99,
94, 76, 78, 41, 44,
42, 89, 36, 37, 15,
67, 65, 44, 39, 40,
87, 85, 16, 13, 11,
53, 4, 50, 45, 82,
96, 50, 66, 21, 41,
73, 39, 66, 31, 64,
60, 94, 27, 93, 25,
9, 17, 59, 34, 21,
46, 53, 77, 62, 33,
39, 2, 15, 5, 11,
49, 1, 76, 51, 100,
60, 42, 63, 14, 32,
28, 63, 47, 95, 79,
16, 67, 46, 36, 84,
25, 2, 86, 7, 65,
68, 36, 69, 92, 76,
74, 11, 36, 5, 79,
7, 75, 56, 81, 88,
84, 71, 60, 97, 30,
8, 89, 67, 89, 51,
62, 81, 44, 51, 4,
28, 82, 24, 13, 72,
1, 16, 6, 49, 51,
24, 21, 25, 59, 82,
35, 92, 75, 90, 52,
30, 44, 79, 6, 95,
91, 18, 16, 65, 35,
92, 97, 30, 4, 82,
5, 27, 16, 32, 23,
73, 99, 83, 87, 84,
38, 56, 87, 25, 91,
69, 46, 64, 64, 27,
74, 87, 71, 8, 27,
25, 3, 25, 28, 56,
69, 58, 2, 9, 43,
24, 29, 61, 78, 93,
9, 67, 86, 59, 53,
18, 5, 30, 18, 99,
87, 99, 5, 62, 79,
99, 77, 19, 50, 41,
69, 45, 4, 82, 68,
38, 67, 18, 47, 33,
76, 69, 69, 85, 29,
27, 59, 32, 1, 72,
63, 85, 3, 88, 45,
23, 64, 95, 79, 55,
75, 78, 77, 10, 30,
31, 48, 58, 100, 10,
4, 98, 41, 30, 89,
47, 45, 14, 78, 84,
20, 24, 20, 94, 91,
54, 60, 37, 81, 11,
7, 39, 57, 33, 87,
8, 22, 86, 66, 35,
82, 10, 80, 19, 80,
100, 57, 11, 74, 8,
39, 53, 96, 84, 25,
52, 82, 68, 5, 19,
63, 29, 71, 72, 18,
33, 14, 18, 62, 81,
15, 20, 100, 85, 51,
54, 42, 42, 2, 49,
73, 73, 17, 10, 84,
33, 32, 66, 36, 52,
11, 69, 56, 10, 98,
3, 43, 16, 49, 24,
16, 45, 30, 82, 27,
30, 98, 4, 5, 57,
22, 56, 79, 91, 47,
66, 11, 25, 12, 33,
11, 69, 14, 39, 2,
7, 55, 5, 55, 29,
13, 43, 25, 10, 52,
98, 5, 60, 47, 85,
19, 93, 78, 71, 84,
84, 82, 81, 14, 63,
60, 74, 52, 9, 41,
60, 46, 11, 42, 27,
6, 20, 13, 64, 25,
21, 97, 89, 97, 52,
11, 83, 70, 77, 54,
59, 88, 98, 58, 65,
100, 78, 100, 55, 49,
9, 12, 83, 70, 52,
99, 10, 12, 7, 100,
58, 40, 20, 3, 60,
10, 27, 85, 72, 35,
88, 48, 53, 84, 57,
61, 84, 16, 92, 37,
8, 44, 57, 80, 56,
64, 51, 6, 52, 45,
17, 31, 94, 77, 77,
94, 72, 23, 7, 4,
4, 92, 51, 52, 90,
54, 68, 74, 83, 37,
7, 92, 91, 17, 1,
68, 55, 25, 45, 40,
91, 5, 16, 100, 86,
3, 26, 67, 25, 31,
73, 83, 9, 79, 71,
8, 44, 96, 96, 63,
98, 71, 5, 69, 93,
32, 22, 76, 87, 66,
18, 53, 89, 1, 69,
53, 89, 56, 74, 59,
40, 30, 5, 83, 55,
65, 16, 34, 100, 52,
68, 85, 55, 47, 35,
47, 93, 74, 67, 13,
51, 95, 97, 83, 35,
8, 16, 87, 88, 59,
91, 8, 97, 71, 96,
43
]);
function sum(Count, Numbers) {
let total = 0;
for (let i = 0; i < Count; i++) {
total += Numbers[i];
}
return total;
}
for (let i = 0; i < 20; i++) {
sum(4096, Nums);
}
)"
);
// Compile the source code.
v8::Local<v8::Script> script =
v8::Script::Compile(context, source).ToLocalChecked();
// Run the script to get the result.
script->Run(context).ToLocalChecked();
v8::Local<v8::String> source2 = v8::String::NewFromUtf8Literal(isolate, "sum(4096, Nums)");
v8::Local<v8::Script> script2 =
v8::Script::Compile(context, source2).ToLocalChecked();
uint64 jsStart = __rdtsc();
v8::Local<v8::Value> result = script2->Run(context).ToLocalChecked();
uint64 jsEnd = __rdtsc();
jsTicks = jsEnd - jsStart;
printf("Total processor ticks in js: %llu\n", jsTicks);
/*
// Convert the result to an UTF8 string and print it.
v8::String::Utf8Value utf8(isolate, result);
printf("%s\n", *utf8);
*/
// Convert the result to uint32 value
uint32_t number = result->Uint32Value(context).ToChecked();
printf("Result from javascript: %d\n", number);
}
#endif
#if 1
{
// Use the JavaScript API to generate a WebAssembly module.
//
// |bytes| contains the binary format for the following module:
//
// (func (export "add") (param i32 i32) (result i32)
// get_local 0
// get_local 1
// i32.add)
//
const char csource[] = R"(
let bytes = new Uint8Array([0x00, 0x61, 0x73, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x02, 0x60, 0x00, 0x00, 0x60, 0x02,
0x7F, 0x7F, 0x01, 0x7F, 0x02, 0x0F, 0x01, 0x03, 0x65, 0x6E, 0x76, 0x06, 0x6D, 0x65, 0x6D, 0x6F,
0x72, 0x79, 0x02, 0x00, 0x02, 0x03, 0x03, 0x02, 0x00, 0x01, 0x06, 0x2B, 0x07, 0x7F, 0x01, 0x41,
0x80, 0x88, 0x04, 0x0B, 0x7F, 0x00, 0x41, 0x80, 0x08, 0x0B, 0x7F, 0x00, 0x41, 0x80, 0x08, 0x0B,
0x7F, 0x00, 0x41, 0x80, 0x08, 0x0B, 0x7F, 0x00, 0x41, 0x80, 0x88, 0x04, 0x0B, 0x7F, 0x00, 0x41,
0x00, 0x0B, 0x7F, 0x00, 0x41, 0x01, 0x0B, 0x07, 0x74, 0x08, 0x11, 0x5F, 0x5F, 0x77, 0x61, 0x73,
0x6D, 0x5F, 0x63, 0x61, 0x6C, 0x6C, 0x5F, 0x63, 0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x03, 0x61,
0x64, 0x64, 0x00, 0x01, 0x0C, 0x5F, 0x5F, 0x64, 0x73, 0x6F, 0x5F, 0x68, 0x61, 0x6E, 0x64, 0x6C,
0x65, 0x03, 0x01, 0x0A, 0x5F, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x65, 0x6E, 0x64, 0x03, 0x02,
0x0D, 0x5F, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x03, 0x03,
0x0B, 0x5F, 0x5F, 0x68, 0x65, 0x61, 0x70, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x03, 0x04, 0x0D, 0x5F,
0x5F, 0x6D, 0x65, 0x6D, 0x6F, 0x72, 0x79, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x03, 0x05, 0x0C, 0x5F,
0x5F, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x03, 0x06, 0x0A, 0x61, 0x02,
0x02, 0x00, 0x0B, 0x5C, 0x01, 0x02, 0x7F, 0x02, 0x40, 0x02, 0x40, 0x20, 0x01, 0x41, 0x01, 0x4E,
0x0D, 0x00, 0x41, 0x00, 0x21, 0x02, 0x0C, 0x01, 0x0B, 0x41, 0x00, 0x21, 0x03, 0x41, 0x00, 0x21,
0x02, 0x03, 0x40, 0x20, 0x00, 0x28, 0x02, 0x00, 0x20, 0x02, 0x6A, 0x20, 0x00, 0x41, 0x04, 0x6A,
0x28, 0x02, 0x00, 0x6A, 0x20, 0x00, 0x41, 0x08, 0x6A, 0x28, 0x02, 0x00, 0x6A, 0x20, 0x00, 0x41,
0x0C, 0x6A, 0x28, 0x02, 0x00, 0x6A, 0x21, 0x02, 0x20, 0x00, 0x41, 0x10, 0x6A, 0x21, 0x00, 0x20,
0x03, 0x41, 0x04, 0x6A, 0x22, 0x03, 0x20, 0x01, 0x48, 0x0D, 0x00, 0x0B, 0x0B, 0x20, 0x02, 0x0B,
0x00, 0x34, 0x04, 0x6E, 0x61, 0x6D, 0x65, 0x01, 0x19, 0x02, 0x00, 0x11, 0x5F, 0x5F, 0x77, 0x61,
0x73, 0x6D, 0x5F, 0x63, 0x61, 0x6C, 0x6C, 0x5F, 0x63, 0x74, 0x6F, 0x72, 0x73, 0x01, 0x03, 0x61,
0x64, 0x64, 0x07, 0x12, 0x01, 0x00, 0x0F, 0x5F, 0x5F, 0x73, 0x74, 0x61, 0x63, 0x6B, 0x5F, 0x70,
0x6F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x00, 0x26, 0x09, 0x70, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x65,
0x72, 0x73, 0x01, 0x0C, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x2D, 0x62, 0x79,
0x01, 0x05, 0x63, 0x6C, 0x61, 0x6E, 0x67, 0x06, 0x31, 0x34, 0x2E, 0x30, 0x2E, 0x31]);
const WasmNums = new Uint32Array();
const memory = new WebAssembly.Memory({ initial: 10 });
let module = new WebAssembly.Module(bytes);
const instance = new WebAssembly.Instance(module, { env: { memory }});
const HEAP_BASE = instance.exports.__heap_base;
const view = new Uint32Array(memory.buffer, HEAP_BASE, 4096);
view.set([
4, 68, 10, 6, 72,
63, 82, 71, 22, 7,
78, 19, 87, 14, 27,
64, 71, 22, 79, 14,
36, 36, 18, 21, 77,
88, 90, 36, 29, 28,
70, 18, 78, 31, 5,
33, 73, 85, 15, 50,
70, 93, 83, 99, 80,
78, 62, 24, 41, 12,
36, 24, 36, 7, 95,
91, 43, 16, 36, 33,
50, 46, 25, 82, 73,
30, 21, 56, 95, 45,
94, 45, 48, 23, 68,
70, 27, 54, 30, 78,
11, 87, 98, 33, 64,
37, 74, 4, 61, 86,
91, 48, 38, 5, 46,
9, 78, 37, 10, 21,
66, 37, 50, 52, 29,
27, 14, 91, 36, 94,
85, 9, 23, 2, 14,
72, 82, 36, 46, 94,
5, 7, 94, 53, 97,
18, 94, 18, 13, 35,
45, 49, 4, 54, 89,
90, 68, 31, 21, 72,
58, 12, 16, 48, 25,
17, 20, 31, 41, 71,
13, 85, 92, 24, 55,
79, 22, 45, 94, 21,
35, 31, 43, 26, 86,
35, 43, 40, 36, 66,
46, 63, 34, 1, 18,
85, 28, 4, 28, 44,
5, 18, 4, 16, 83,
8, 61, 15, 43, 2,
20, 22, 26, 82, 35,
11, 63, 70, 15, 80,
98, 34, 2, 39, 11,
32, 44, 93, 99, 5,
75, 98, 38, 71, 4,
20, 88, 53, 2, 23,
76, 12, 30, 95, 24,
21, 58, 15, 61, 88,
12, 84, 84, 39, 24,
49, 65, 75, 50, 32,
57, 86, 51, 85, 71,
98, 30, 43, 27, 33,
32, 17, 82, 11, 50,
40, 4, 5, 25, 93,
64, 35, 86, 97, 24,
59, 29, 64, 47, 38,
87, 25, 94, 80, 10,
37, 59, 43, 16, 27,
21, 75, 93, 67, 94,
74, 43, 53, 6, 7,
63, 72, 69, 60, 14,
30, 77, 8, 39, 35,
68, 92, 86, 24, 42,
95, 42, 32, 71, 88,
42, 51, 33, 63, 63,
41, 52, 12, 66, 55,
39, 70, 92, 84, 33,
3, 55, 26, 93, 17,
43, 63, 25, 68, 28,
77, 1, 35, 67, 72,
33, 74, 42, 86, 5,
25, 98, 73, 4, 27,
54, 68, 88, 10, 94,
66, 12, 8, 13, 12,
24, 78, 14, 23, 80,
23, 31, 22, 83, 12,
83, 73, 15, 84, 90,
46, 58, 80, 84, 93,
95, 20, 54, 59, 53,
69, 61, 50, 56, 7,
20, 22, 82, 24, 37,
76, 15, 21, 14, 85,
76, 59, 22, 31, 15,
78, 29, 68, 87, 50,
10, 30, 84, 59, 78,
66, 93, 89, 78, 89,
52, 97, 55, 26, 35,
77, 37, 52, 47, 56,
26, 90, 49, 75, 51,
81, 85, 38, 78, 21,
18, 36, 70, 53, 7,
37, 80, 81, 7, 86,
59, 15, 61, 71, 71,
56, 15, 19, 79, 81,
37, 45, 73, 85, 29,
68, 45, 96, 51, 39,
9, 78, 4, 60, 6,
42, 57, 6, 52, 11,
15, 50, 91, 54, 37,
1, 43, 61, 1, 97,
58, 75, 41, 99, 47,
29, 100, 75, 65, 65,
79, 44, 78, 20, 61,
49, 63, 69, 54, 84,
40, 91, 15, 45, 10,
31, 36, 83, 76, 78,
3, 66, 85, 20, 47,
50, 95, 20, 45, 33,
14, 13, 5, 67, 14,
47, 22, 67, 97, 74,
90, 7, 93, 53, 100,
78, 32, 82, 73, 27,
97, 49, 27, 79, 12,
71, 1, 67, 21, 9,
24, 86, 16, 97, 95,
59, 32, 9, 48, 93,
79, 22, 10, 97, 97,
4, 68, 93, 60, 55,
80, 75, 52, 50, 50,
98, 37, 71, 97, 4,
23, 98, 2, 44, 94,
19, 74, 29, 6, 34,
79, 74, 53, 90, 100,
99, 87, 61, 38, 94,
49, 21, 74, 68, 88,
22, 92, 88, 84, 97,
17, 44, 42, 9, 74,
22, 41, 79, 72, 35,
26, 34, 21, 61, 18,
33, 86, 54, 94, 89,
63, 62, 78, 60, 16,
95, 89, 52, 6, 8,
84, 73, 23, 64, 21,
52, 78, 15, 84, 75,
88, 41, 63, 47, 23,
41, 19, 72, 39, 7,
19, 83, 11, 70, 40,
67, 43, 78, 53, 98,
91, 40, 19, 46, 50,
58, 41, 89, 10, 64,
87, 38, 56, 77, 88,
18, 98, 47, 5, 79,
35, 30, 32, 63, 74,
21, 61, 45, 53, 40,
23, 22, 87, 94, 37,
17, 89, 85, 13, 38,
47, 41, 85, 29, 27,
20, 77, 7, 54, 2,
85, 91, 30, 19, 96,
42, 16, 24, 16, 25,
86, 35, 41, 41, 60,
13, 2, 66, 86, 88,
52, 22, 8, 43, 58,
15, 79, 44, 87, 7,
73, 53, 59, 86, 99,
90, 71, 38, 17, 73,
81, 84, 93, 57, 11,
18, 41, 11, 82, 5,
67, 18, 23, 18, 60,
38, 25, 89, 47, 63,
13, 53, 53, 90, 12,
36, 57, 65, 67, 94,
1, 94, 72, 85, 45,
60, 84, 80, 27, 27,
68, 33, 8, 4, 43,
91, 23, 94, 63, 50,
31, 69, 75, 24, 84,
5, 45, 56, 69, 3,
97, 8, 1, 13, 76,
46, 73, 97, 34, 79,
51, 14, 96, 98, 84,
91, 45, 27, 51, 97,
3, 32, 70, 70, 62,
64, 96, 10, 21, 91,
17, 96, 14, 49, 79,
68, 17, 39, 2, 53,
53, 52, 75, 13, 71,
75, 87, 91, 86, 7,
82, 85, 54, 66, 33,
37, 77, 81, 26, 66,
10, 61, 74, 99, 59,
62, 53, 83, 87, 24,
60, 20, 54, 55, 76,
91, 22, 32, 46, 98,
45, 37, 8, 29, 72,
64, 52, 55, 33, 44,
58, 10, 81, 52, 43,
47, 47, 81, 28, 36,
6, 44, 48, 82, 15,
61, 42, 47, 59, 21,
81, 51, 100, 63, 7,
94, 6, 19, 73, 41,
15, 55, 86, 77, 100,
11, 59, 20, 68, 49,
42, 97, 95, 17, 84,
67, 99, 19, 55, 80,
57, 61, 87, 33, 36,
78, 9, 91, 33, 14,
94, 16, 35, 74, 19,
37, 92, 51, 65, 13,
94, 22, 98, 68, 19,
53, 74, 82, 61, 46,
3, 94, 30, 97, 43,
46, 55, 13, 76, 62,
34, 38, 45, 13, 60,
72, 9, 83, 11, 88,
68, 12, 12, 33, 91,
67, 39, 54, 4, 57,
22, 9, 7, 78, 4,
53, 7, 37, 57, 46,
25, 21, 91, 8, 29,
60, 36, 36, 88, 11,
34, 32, 82, 50, 48,
34, 86, 68, 62, 77,
14, 9, 34, 85, 53,
19, 96, 4, 52, 1,
49, 33, 7, 96, 30,
7, 5, 14, 72, 96,
71, 97, 86, 2, 69,
26, 1, 74, 94, 15,
15, 17, 50, 13, 97,
53, 60, 56, 18, 36,
67, 89, 11, 12, 71,
87, 2, 24, 10, 4,
11, 12, 80, 57, 37,
46, 11, 52, 61, 14,
32, 45, 78, 12, 20,
90, 14, 67, 15, 65,
83, 91, 73, 45, 89,
70, 71, 39, 59, 63,
53, 42, 47, 20, 44,
27, 56, 85, 24, 23,
48, 55, 61, 42, 25,
47, 48, 70, 82, 88,
91, 92, 45, 69, 90,
25, 81, 31, 25, 41,
37, 42, 87, 47, 25,
4, 3, 80, 35, 40,
17, 68, 98, 84, 95,
94, 27, 99, 29, 9,
73, 55, 35, 78, 95,
96, 71, 35, 88, 81,
3, 47, 62, 47, 25,
72, 4, 7, 21, 31,
13, 18, 95, 58, 43,
73, 63, 10, 82, 47,
66, 69, 19, 61, 71,
77, 60, 33, 99, 71,
81, 96, 90, 55, 25,
29, 91, 8, 89, 34,
6, 8, 27, 46, 45,
15, 2, 82, 84, 63,
59, 98, 8, 68, 46,
32, 90, 50, 86, 98,
17, 58, 18, 82, 45,
56, 84, 42, 20, 48,
82, 79, 100, 89, 46,
20, 97, 24, 67, 91,
19, 27, 80, 4, 82,
41, 11, 91, 79, 60,
76, 59, 73, 21, 10,
17, 44, 66, 41, 73,
39, 93, 61, 50, 99,
92, 53, 6, 16, 41,
93, 16, 28, 58, 32,
31, 9, 57, 7, 3,
20, 13, 52, 18, 6,
47, 69, 82, 68, 82,
52, 75, 3, 65, 30,
43, 14, 100, 39, 54,
8, 61, 15, 70, 77,
1, 19, 45, 59, 14,
25, 54, 31, 42, 7,
47, 72, 90, 33, 69,
40, 81, 66, 41, 69,
32, 51, 77, 73, 98,
12, 29, 77, 19, 34,
85, 21, 26, 68, 37,
75, 65, 87, 31, 74,
61, 73, 50, 55, 87,
92, 14, 43, 46, 35,
60, 77, 69, 85, 98,
80, 79, 68, 76, 53,
53, 53, 18, 26, 46,
57, 83, 100, 76, 89,
37, 73, 2, 65, 58,
65, 48, 19, 46, 65,
25, 3, 84, 64, 86,
63, 42, 20, 91, 82,
92, 54, 9, 6, 1,
65, 63, 71, 39, 98,
71, 9, 95, 9, 49,
22, 93, 80, 49, 52,
5, 78, 47, 92, 26,
80, 76, 15, 85, 34,
55, 92, 43, 7, 98,
13, 24, 61, 41, 37,
42, 38, 95, 43, 15,
70, 50, 1, 100, 6,
14, 50, 1, 65, 22,
27, 84, 46, 18, 54,
9, 68, 74, 59, 5,
22, 26, 44, 51, 65,
31, 42, 17, 78, 81,
20, 92, 72, 89, 96,
24, 7, 57, 85, 54,
16, 19, 37, 79, 75,
95, 92, 12, 29, 78,
84, 11, 26, 6, 6,
61, 25, 22, 76, 81,
7, 97, 68, 10, 72,
95, 53, 45, 16, 96,
18, 95, 15, 35, 17,
90, 69, 65, 70, 1,
23, 61, 18, 87, 19,
16, 26, 45, 23, 86,
74, 82, 39, 7, 65,
59, 86, 17, 14, 50,
65, 93, 43, 89, 82,
30, 41, 10, 19, 74,
81, 38, 88, 37, 10,
3, 57, 95, 28, 61,
26, 8, 14, 74, 22,
74, 70, 64, 34, 59,
45, 22, 63, 32, 46,
15, 14, 93, 10, 80,
1, 64, 80, 3, 77,
60, 3, 33, 89, 20,
55, 73, 99, 63, 3,
28, 16, 14, 95, 57,
62, 57, 98, 5, 45,
65, 24, 21, 88, 91,
49, 80, 52, 49, 49,
52, 7, 83, 63, 77,
96, 15, 95, 13, 98,
65, 44, 32, 57, 71,
57, 16, 70, 70, 9,
48, 55, 2, 42, 75,
23, 65, 77, 28, 20,
25, 58, 79, 65, 11,
60, 95, 64, 48, 88,
66, 52, 53, 28, 15,
99, 26, 63, 83, 36,
53, 45, 78, 92, 3,
93, 79, 2, 79, 85,
50, 65, 44, 56, 36,
28, 77, 8, 12, 59,
43, 28, 63, 84, 75,
38, 84, 75, 20, 25,
9, 89, 55, 61, 32,
67, 34, 75, 41, 54,
52, 59, 96, 89, 24,
12, 95, 52, 64, 50,
28, 94, 7, 77, 49,
18, 13, 89, 23, 67,
28, 34, 18, 100, 93,
31, 58, 17, 22, 49,
7, 84, 81, 31, 70,
80, 1, 48, 24, 74,
46, 22, 87, 25, 19,
14, 57, 73, 29, 66,
19, 1, 13, 45, 19,
28, 93, 84, 84, 30,
31, 39, 62, 80, 1,
79, 72, 47, 2, 61,
100, 62, 33, 32, 48,
48, 94, 68, 36, 64,
23, 95, 59, 62, 97,
63, 62, 10, 16, 86,
80, 45, 86, 51, 14,
68, 40, 16, 35, 48,
89, 49, 69, 4, 47,
31, 47, 22, 44, 58,
35, 85, 71, 59, 2,
14, 5, 49, 3, 22,
2, 83, 11, 2, 91,
51, 84, 1, 93, 34,
77, 24, 26, 77, 62,
42, 80, 22, 76, 67,
45, 58, 5, 25, 14,
52, 94, 57, 60, 48,
80, 71, 64, 1, 99,
10, 49, 75, 81, 59,
1, 51, 3, 26, 70,
97, 38, 55, 97, 1,
37, 92, 24, 11, 45,
36, 1, 73, 2, 18,
71, 64, 94, 54, 37,
37, 9, 88, 55, 84,
8, 85, 33, 67, 15,
12, 95, 14, 84, 32,
60, 28, 58, 29, 39,
38, 51, 92, 24, 64,
86, 23, 76, 43, 49,
65, 97, 92, 62, 22,
53, 6, 46, 67, 95,
21, 80, 87, 73, 54,
75, 44, 35, 29, 81,
50, 55, 29, 2, 47,
64, 42, 79, 75, 87,
78, 75, 61, 5, 51,
63, 58, 58, 33, 83,
26, 90, 25, 28, 99,
2, 40, 9, 57, 80,
30, 3, 16, 89, 24,
45, 33, 50, 76, 49,
31, 17, 41, 98, 56,
95, 70, 83, 73, 68,
16, 13, 42, 86, 29,
51, 57, 10, 87, 84,
88, 9, 15, 100, 39,
73, 28, 32, 69, 61,
87, 5, 32, 43, 54,
65, 79, 33, 51, 81,
75, 93, 73, 26, 55,
53, 37, 49, 24, 43,
66, 9, 51, 20, 21,
9, 70, 11, 94, 64,
68, 56, 25, 26, 60,
27, 16, 47, 63, 77,
82, 16, 16, 97, 40,
5, 40, 60, 84, 64,
85, 29, 26, 17, 75,
66, 68, 75, 10, 96,
61, 21, 5, 46, 68,
30, 40, 22, 85, 3,
68, 88, 37, 10, 12,
98, 47, 29, 84, 94,
38, 30, 71, 97, 41,
68, 28, 95, 50, 14,
4, 10, 68, 82, 14,
81, 85, 4, 3, 50,
32, 68, 14, 29, 43,
22, 44, 74, 38, 23,
3, 32, 58, 18, 50,
4, 76, 97, 78, 82,
39, 31, 60, 9, 64,
89, 87, 69, 44, 25,
8, 23, 55, 57, 98,
24, 15, 75, 22, 68,
79, 25, 25, 93, 77,
66, 19, 21, 45, 27,
94, 47, 5, 97, 27,
54, 64, 31, 44, 31,
61, 11, 84, 19, 79,
93, 4, 80, 32, 78,
36, 1, 43, 100, 16,
87, 25, 79, 20, 97,
38, 29, 52, 46, 76,
72, 10, 14, 41, 2,
65, 46, 5, 40, 38,
88, 1, 85, 37, 53,
58, 16, 48, 62, 5,
71, 44, 69, 35, 93,
10, 23, 100, 69, 82,
57, 33, 43, 21, 69,
38, 79, 86, 86, 80,
49, 23, 45, 23, 48,
19, 57, 84, 25, 35,
35, 10, 6, 83, 23,
33, 100, 78, 2, 32,
7, 57, 15, 55, 89,
16, 15, 97, 53, 85,
23, 90, 29, 5, 53,
12, 97, 55, 47, 17,
78, 91, 82, 55, 70,
100, 5, 17, 38, 73,
88, 27, 31, 85, 16,
21, 41, 13, 98, 47,
69, 21, 36, 87, 3,
61, 4, 91, 8, 64,
92, 51, 61, 79, 100,
27, 100, 24, 51, 37,
72, 60, 43, 38, 9,
48, 37, 79, 95, 97,
8, 77, 8, 36, 93,
24, 100, 27, 46, 16,
14, 69, 74, 63, 70,
43, 62, 29, 12, 23,
40, 53, 59, 75, 12,
89, 30, 29, 54, 34,
51, 93, 53, 74, 100,
92, 77, 11, 48, 73,
81, 75, 68, 20, 30,
61, 19, 99, 89, 23,
31, 66, 37, 76, 81,
76, 68, 47, 93, 4,
10, 86, 94, 53, 56,
100, 34, 14, 28, 34,
25, 85, 31, 7, 66,
29, 42, 16, 29, 53,
31, 61, 85, 51, 17,
18, 46, 89, 13, 49,
33, 37, 97, 14, 33,
88, 13, 66, 35, 54,
57, 76, 53, 68, 44,
54, 3, 17, 75, 90,
93, 5, 79, 66, 42,
70, 78, 14, 89, 19,
96, 60, 7, 90, 32,
88, 93, 59, 30, 88,
11, 8, 53, 71, 65,
79, 19, 32, 92, 69,
61, 91, 29, 45, 1,
34, 9, 40, 63, 27,
51, 2, 59, 48, 50,
5, 19, 64, 28, 88,
3, 35, 66, 2, 80,
6, 50, 31, 70, 78,
85, 51, 47, 77, 51,
15, 74, 73, 71, 70,
47, 90, 87, 24, 31,
58, 69, 33, 52, 95,
95, 20, 29, 80, 48,
57, 47, 21, 94, 44,
22, 47, 40, 30, 61,
66, 59, 59, 75, 60,
94, 98, 4, 26, 17,
64, 22, 64, 12, 97,
77, 75, 21, 89, 20,
88, 64, 82, 85, 29,
17, 41, 71, 28, 76,
13, 94, 99, 17, 53,
24, 24, 54, 100, 84,
12, 78, 97, 66, 1,
48, 73, 32, 3, 82,
80, 28, 85, 17, 59,
80, 2, 92, 28, 32,
89, 63, 10, 98, 16,
97, 58, 81, 1, 10,
50, 100, 80, 80, 62,
17, 73, 45, 73, 39,
92, 74, 5, 53, 70,
65, 17, 40, 51, 21,
42, 89, 56, 26, 24,
11, 69, 22, 82, 24,
98, 24, 52, 21, 31,
34, 46, 6, 44, 52,
74, 16, 64, 56, 11,
59, 17, 27, 27, 68,
7, 73, 80, 44, 70,
11, 86, 65, 100, 93,
90, 95, 2, 66, 17,
15, 30, 96, 3, 33,
40, 88, 9, 70, 48,
18, 72, 46, 100, 16,
73, 1, 50, 54, 56,
36, 100, 25, 81, 70,
42, 53, 30, 42, 43,
27, 81, 49, 76, 56,
5, 45, 86, 13, 32,
16, 75, 64, 66, 32,
76, 86, 50, 59, 34,
45, 30, 63, 81, 82,
18, 53, 14, 17, 19,
96, 54, 70, 71, 87,
72, 2, 60, 58, 59,
22, 51, 5, 29, 32,
68, 57, 44, 81, 72,
20, 55, 75, 82, 57,
99, 6, 20, 13, 51,
18, 70, 62, 85, 15,
72, 4, 69, 24, 70,
55, 100, 28, 58, 14,
18, 3, 98, 70, 97,
71, 46, 91, 70, 60,
2, 87, 72, 43, 96,
72, 63, 23, 15, 27,
28, 93, 95, 47, 75,
16, 77, 78, 21, 1,
85, 69, 77, 96, 82,
43, 37, 98, 93, 41,
30, 86, 52, 32, 28,
44, 12, 25, 35, 37,
93, 29, 89, 47, 57,
63, 41, 34, 34, 66,
91, 42, 100, 93, 44,
57, 2, 69, 46, 29,
53, 61, 90, 48, 62,
38, 81, 55, 62, 1,
32, 32, 97, 8, 38,
1, 81, 18, 58, 22,
10, 94, 42, 38, 67,
19, 71, 73, 76, 60,
90, 60, 51, 35, 51,
57, 45, 45, 94, 59,
86, 90, 13, 48, 86,
60, 39, 70, 6, 4,
32, 77, 53, 9, 22,
73, 25, 7, 41, 8,
87, 6, 3, 55, 17,
28, 68, 33, 90, 9,
79, 26, 70, 89, 52,
5, 10, 48, 38, 65,
43, 11, 84, 30, 64,
83, 60, 19, 59, 89,
9, 53, 12, 89, 63,
14, 89, 86, 44, 35,
98, 49, 74, 45, 41,
100, 90, 34, 91, 14,
100, 55, 89, 96, 78,
34, 88, 55, 92, 55,
47, 96, 65, 69, 50,
39, 64, 6, 59, 2,
87, 65, 6, 8, 4,
64, 37, 75, 10, 18,
68, 14, 44, 77, 94,
37, 60, 79, 89, 97,
4, 70, 12, 65, 87,
77, 8, 94, 100, 70,
51, 17, 81, 99, 11,
90, 11, 85, 10, 58,
100, 93, 3, 74, 33,
21, 16, 4, 71, 1,
29, 49, 55, 83, 91,
15, 89, 33, 55, 33,
15, 65, 48, 78, 44,
20, 76, 19, 59, 59,
67, 60, 97, 81, 49,
24, 88, 99, 16, 50,
25, 69, 50, 34, 86,
78, 27, 45, 94, 42,
58, 82, 56, 54, 76,
8, 45, 50, 22, 45,
98, 12, 1, 55, 48,
33, 52, 95, 74, 33,
13, 47, 35, 9, 37,
15, 29, 76, 58, 81,
35, 61, 21, 87, 5,
94, 12, 42, 33, 60,
87, 22, 75, 93, 54,
87, 87, 13, 89, 83,
92, 16, 42, 34, 84,
9, 12, 8, 11, 25,
35, 100, 78, 96, 92,
51, 39, 44, 19, 85,
74, 3, 49, 78, 51,
17, 26, 95, 16, 56,
34, 69, 96, 3, 2,
40, 26, 63, 16, 59,
21, 82, 86, 5, 30,
26, 87, 9, 20, 7,
77, 25, 76, 76, 27,
42, 74, 71, 85, 97,
85, 71, 5, 37, 70,
62, 52, 40, 69, 71,
2, 84, 86, 92, 13,
87, 2, 25, 71, 97,
47, 23, 97, 58, 73,
65, 50, 58, 59, 44,
72, 55, 66, 20, 83,
28, 82, 17, 92, 67,
1, 91, 12, 41, 73,
17, 3, 56, 88, 37,
35, 1, 5, 60, 22,
46, 52, 99, 33, 50,
95, 25, 58, 30, 81,
42, 33, 95, 45, 15,
57, 91, 54, 88, 31,
54, 73, 72, 16, 61,
65, 75, 16, 57, 62,
28, 63, 27, 66, 99,
88, 70, 99, 81, 75,
5, 50, 18, 58, 49,
32, 33, 36, 75, 85,
93, 55, 91, 63, 59,
27, 50, 3, 7, 47,
68, 85, 51, 27, 83,
48, 40, 79, 21, 47,
32, 31, 60, 7, 83,
43, 29, 19, 29, 67,
97, 89, 69, 9, 28,
32, 79, 23, 26, 30,
31, 62, 48, 44, 97,
63, 44, 20, 96, 90,
36, 18, 85, 14, 82,
85, 29, 71, 8, 93,
48, 42, 57, 87, 98,
99, 73, 97, 64, 71,
15, 70, 44, 97, 22,
95, 53, 7, 48, 9,
40, 42, 3, 70, 97,
62, 91, 15, 50, 52,
69, 97, 7, 38, 4,
31, 71, 34, 3, 9,
100, 13, 69, 61, 23,
14, 93, 16, 25, 23,
54, 82, 72, 30, 4,
12, 75, 72, 89, 43,
19, 22, 100, 52, 79,
48, 85, 82, 27, 44,
44, 61, 26, 93, 74,
83, 38, 57, 38, 4,
85, 36, 76, 16, 78,
51, 24, 79, 71, 20,
2, 89, 31, 90, 80,
80, 96, 13, 85, 27,
42, 22, 15, 81, 29,
96, 76, 69, 12, 56,
72, 88, 3, 12, 91,
70, 72, 96, 83, 17,
40, 36, 69, 20, 40,
27, 19, 81, 75, 69,
12, 29, 56, 44, 62,
85, 78, 42, 10, 66,
80, 36, 16, 21, 47,
12, 65, 83, 81, 26,
2, 88, 81, 6, 99,
94, 76, 78, 41, 44,
42, 89, 36, 37, 15,
67, 65, 44, 39, 40,
87, 85, 16, 13, 11,
53, 4, 50, 45, 82,
96, 50, 66, 21, 41,
73, 39, 66, 31, 64,
60, 94, 27, 93, 25,
9, 17, 59, 34, 21,
46, 53, 77, 62, 33,
39, 2, 15, 5, 11,
49, 1, 76, 51, 100,
60, 42, 63, 14, 32,
28, 63, 47, 95, 79,
16, 67, 46, 36, 84,
25, 2, 86, 7, 65,
68, 36, 69, 92, 76,
74, 11, 36, 5, 79,
7, 75, 56, 81, 88,
84, 71, 60, 97, 30,
8, 89, 67, 89, 51,
62, 81, 44, 51, 4,
28, 82, 24, 13, 72,
1, 16, 6, 49, 51,
24, 21, 25, 59, 82,
35, 92, 75, 90, 52,
30, 44, 79, 6, 95,
91, 18, 16, 65, 35,
92, 97, 30, 4, 82,
5, 27, 16, 32, 23,
73, 99, 83, 87, 84,
38, 56, 87, 25, 91,
69, 46, 64, 64, 27,
74, 87, 71, 8, 27,
25, 3, 25, 28, 56,
69, 58, 2, 9, 43,
24, 29, 61, 78, 93,
9, 67, 86, 59, 53,
18, 5, 30, 18, 99,
87, 99, 5, 62, 79,
99, 77, 19, 50, 41,
69, 45, 4, 82, 68,
38, 67, 18, 47, 33,
76, 69, 69, 85, 29,
27, 59, 32, 1, 72,
63, 85, 3, 88, 45,
23, 64, 95, 79, 55,
75, 78, 77, 10, 30,
31, 48, 58, 100, 10,
4, 98, 41, 30, 89,
47, 45, 14, 78, 84,
20, 24, 20, 94, 91,
54, 60, 37, 81, 11,
7, 39, 57, 33, 87,
8, 22, 86, 66, 35,
82, 10, 80, 19, 80,
100, 57, 11, 74, 8,
39, 53, 96, 84, 25,
52, 82, 68, 5, 19,
63, 29, 71, 72, 18,
33, 14, 18, 62, 81,
15, 20, 100, 85, 51,
54, 42, 42, 2, 49,
73, 73, 17, 10, 84,
33, 32, 66, 36, 52,
11, 69, 56, 10, 98,
3, 43, 16, 49, 24,
16, 45, 30, 82, 27,
30, 98, 4, 5, 57,
22, 56, 79, 91, 47,
66, 11, 25, 12, 33,
11, 69, 14, 39, 2,
7, 55, 5, 55, 29,
13, 43, 25, 10, 52,
98, 5, 60, 47, 85,
19, 93, 78, 71, 84,
84, 82, 81, 14, 63,
60, 74, 52, 9, 41,
60, 46, 11, 42, 27,
6, 20, 13, 64, 25,
21, 97, 89, 97, 52,
11, 83, 70, 77, 54,
59, 88, 98, 58, 65,
100, 78, 100, 55, 49,
9, 12, 83, 70, 52,
99, 10, 12, 7, 100,
58, 40, 20, 3, 60,
10, 27, 85, 72, 35,
88, 48, 53, 84, 57,
61, 84, 16, 92, 37,
8, 44, 57, 80, 56,
64, 51, 6, 52, 45,
17, 31, 94, 77, 77,
94, 72, 23, 7, 4,
4, 92, 51, 52, 90,
54, 68, 74, 83, 37,
7, 92, 91, 17, 1,
68, 55, 25, 45, 40,
91, 5, 16, 100, 86,
3, 26, 67, 25, 31,
73, 83, 9, 79, 71,
8, 44, 96, 96, 63,
98, 71, 5, 69, 93,
32, 22, 76, 87, 66,
18, 53, 89, 1, 69,
53, 89, 56, 74, 59,
40, 30, 5, 83, 55,
65, 16, 34, 100, 52,
68, 85, 55, 47, 35,
47, 93, 74, 67, 13,
51, 95, 97, 83, 35,
8, 16, 87, 88, 59,
91, 8, 97, 71, 96,
43
]);
for (let i = 0; i < 20; i++) {
instance.exports.add(HEAP_BASE, 4096);
}
)";
// Create a string containing the JavaScript source code.
v8::Local<v8::String> source =
v8::String::NewFromUtf8Literal(isolate, csource);
// Compile the source code.
v8::Local<v8::Script> script =
v8::Script::Compile(context, source).ToLocalChecked();
// Run the script to get the result.
script->Run(context).ToLocalChecked();
const char csource2[] = "instance.exports.add(HEAP_BASE, 4096)";
v8::Local<v8::String> source2 =
v8::String::NewFromUtf8Literal(isolate, csource2);
v8::Local<v8::Script> script2 = v8::Script::Compile(context, source2).ToLocalChecked();
uint64 wasmStart = __rdtsc();
v8::Local<v8::Value> result = script2->Run(context).ToLocalChecked();
uint64 wasmEnd = __rdtsc();
wasmTicks = wasmEnd - wasmStart;
printf("Total processor ticks in wasm: %llu\n", wasmTicks);
// Convert the result to a uint32 and print it.
uint32_t number = result->Uint32Value(context).ToChecked();
printf("Result from wasm %d\n", number);
}
#endif
}
printf("--------------------------------------------------\n");
printf("js/c: %llu\n", jsTicks/ticks);
printf("wasm/c: %llu\n", wasmTicks/ticks);
// Dispose the isolate and tear down V8.
isolate->Dispose();
v8::V8::Dispose();
v8::V8::DisposePlatform();
delete create_params.array_buffer_allocator;
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment