You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+51-10Lines changed: 51 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,54 @@ This set of microbenchmarks adheres to the C++ standard and is designed to execu
6
6
# fastiobench
7
7
This benchmark includes 10 standard benchmarks:
8
8
9
-
print/scan 10 million integers
10
-
concat string
11
-
vector push_back
12
-
dijkstra
13
-
spfa
14
-
topsort
15
-
tarjan
16
-
gabow
17
-
list sort
18
-
sha512
9
+
1.10mint: print/scan 10 million integers
10
+
2.leb128: print/scan 10 million integers with leb128
11
+
3.concatstr: concat std::string
12
+
4.gengraph: generate a graph for dijkstra and dijkstra unchecked
13
+
5.dijkstra
14
+
6.dijkstra_unchecked
15
+
7.list sort
16
+
8.sha512
17
+
9.vec_push_back:vector push_back
18
+
10.randpass
19
+
20
+
# Tests Explainations
21
+
22
+
## 1.10mint
23
+
This benchmark generates 10 million integers and writes them to a file, then reads them back. It is designed to evaluate the performance of formatted input/output operations, crucial for tasks such as logging, serializing text (e.g., JSON), or handling vast amounts of text input/output in ACM/ICPC or Computing Olympiad competitions.
24
+
25
+
## 2.leb128
26
+
27
+
This benchmark generates 10 million integers, writes them to a file using the integers' LEB128 encoding, and then reads them back. It focuses on evaluating the performance of binary serialization.
28
+
29
+
## 3.concatstr
30
+
31
+
This benchmark assesses the performance of concatenating ```std::string``` objects, a common operation in C++ code where string concatenation using ```std::string``` is ubiquitous and performance is critical. It primarily evaluates the performance of heap allocation.
32
+
33
+
## 4.gengraph
34
+
35
+
It produces a directed graph test intended for consumption by the 5.dijkstra and 6.dijkstra_unchecked algorithms. The benchmark evaluates the input/output and random number generation performance on your system.
36
+
37
+
## 5.dijkstra
38
+
39
+
Dijkstra is a widely used algorithm for finding the shortest path. However, it employs various data structures and algorithms. It can serve as a benchmark for evaluating the performance of data structures and the efficiency of random access on contiguous ranges, such as vectors.
40
+
41
+
## 6.dijkstra_unchecked
42
+
43
+
This version is the unchecked variant of 5.dijkstra. While 5.dijkstra always verifies bounds to uphold memory safety, this one does not. Its purpose is to assess whether bounds checking leads to a performance decline on your system by comparing its results with those of 5.dijkstra.
44
+
45
+
## 7.list sort
46
+
47
+
This benchmark evaluates the performance of sorting a doubly-linked list, specifically focusing on the efficiency of pointer chasing, where cache misses are prevalent.
48
+
49
+
## 8.sha512
50
+
51
+
SHA512 is a widely used cryptographic hash algorithm known for its utility and security. This benchmark assesses the performance of a typical cryptographic algorithm.
52
+
53
+
## 9.vec_push_Back
54
+
55
+
vector.push_back is a frequently used operation in C++ due to the widespread adoption of the vector container as the default choice. The efficiency of push_back becomes paramount as it is executed frequently. This benchmark evaluates the performance of vector growth and the allocator's efficiency.
56
+
57
+
## 10.randpass
58
+
59
+
This generates 1 million passwords using the system's cryptographically secure random number generator. It assesses the performance of the random number generator, a task commonly encountered in various applications.
0 commit comments