Skip to content

Commit e515c62

Browse files
authored
Merge pull request #36 from TechEmpower/master
aa
2 parents f08a35b + ada90ad commit e515c62

File tree

967 files changed

+23971
-13228
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

967 files changed

+23971
-13228
lines changed

CODE_OF_CONDUCT.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
2+
# Contributor Covenant Code of Conduct
3+
4+
## Our Pledge
5+
6+
We as members, contributors, and leaders pledge to make participation in our
7+
community a harassment-free experience for everyone, regardless of age, body
8+
size, visible or invisible disability, ethnicity, sex characteristics, gender
9+
identity and expression, level of experience, education, socio-economic status,
10+
nationality, personal appearance, race, caste, color, religion, or sexual
11+
identity and orientation.
12+
13+
We pledge to act and interact in ways that contribute to an open, welcoming,
14+
diverse, inclusive, and healthy community.
15+
16+
## Our Standards
17+
18+
Examples of behavior that contributes to a positive environment for our
19+
community include:
20+
21+
* Demonstrating empathy and kindness toward other people
22+
* Being respectful of differing opinions, viewpoints, and experiences
23+
* Giving and gracefully accepting constructive feedback
24+
* Accepting responsibility and apologizing to those affected by our mistakes,
25+
and learning from the experience
26+
* Focusing on what is best not just for us as individuals, but for the overall
27+
community
28+
29+
Examples of unacceptable behavior include:
30+
31+
* The use of sexualized language or imagery, and sexual attention or advances of
32+
any kind
33+
* Trolling, insulting or derogatory comments, and personal or political attacks
34+
* Public or private harassment
35+
* Publishing others' private information, such as a physical or email address,
36+
without their explicit permission
37+
* Other conduct which could reasonably be considered inappropriate in a
38+
professional setting
39+
40+
## Enforcement Responsibilities
41+
42+
Community leaders are responsible for clarifying and enforcing our standards of
43+
acceptable behavior and will take appropriate and fair corrective action in
44+
response to any behavior that they deem inappropriate, threatening, offensive,
45+
or harmful.
46+
47+
Community leaders have the right and responsibility to remove, edit, or reject
48+
comments, commits, code, wiki edits, issues, and other contributions that are
49+
not aligned to this Code of Conduct, and will communicate reasons for moderation
50+
decisions when appropriate.
51+
52+
## Scope
53+
54+
This Code of Conduct applies within all community spaces, and also applies when
55+
an individual is officially representing the community in public spaces.
56+
Examples of representing our community include using an official email address,
57+
posting via an official social media account, or acting as an appointed
58+
representative at an online or offline event.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported to the community leaders responsible for enforcement at
64+
65+
All complaints will be reviewed and investigated promptly and fairly.
66+
67+
All community leaders are obligated to respect the privacy and security of the
68+
reporter of any incident.
69+
70+
## Enforcement Guidelines
71+
72+
Community leaders will follow these Community Impact Guidelines in determining
73+
the consequences for any action they deem in violation of this Code of Conduct:
74+
75+
### 1. Correction
76+
77+
**Community Impact**: Use of inappropriate language or other behavior deemed
78+
unprofessional or unwelcome in the community.
79+
80+
**Consequence**: A private, written warning from community leaders, providing
81+
clarity around the nature of the violation and an explanation of why the
82+
behavior was inappropriate. A public apology may be requested.
83+
84+
### 2. Warning
85+
86+
**Community Impact**: A violation through a single incident or series of
87+
actions.
88+
89+
**Consequence**: A warning with consequences for continued behavior. No
90+
interaction with the people involved, including unsolicited interaction with
91+
those enforcing the Code of Conduct, for a specified period of time. This
92+
includes avoiding interactions in community spaces as well as external channels
93+
like social media. Violating these terms may lead to a temporary or permanent
94+
ban.
95+
96+
### 3. Temporary Ban
97+
98+
**Community Impact**: A serious violation of community standards, including
99+
sustained inappropriate behavior.
100+
101+
**Consequence**: A temporary ban from any sort of interaction or public
102+
communication with the community for a specified period of time. No public or
103+
private interaction with the people involved, including unsolicited interaction
104+
with those enforcing the Code of Conduct, is allowed during this period.
105+
Violating these terms may lead to a permanent ban.
106+
107+
### 4. Permanent Ban
108+
109+
**Community Impact**: Demonstrating a pattern of violation of community
110+
standards, including sustained inappropriate behavior, harassment of an
111+
individual, or aggression toward or disparagement of classes of individuals.
112+
113+
**Consequence**: A permanent ban from any sort of public interaction within the
114+
community.
115+
116+
## Attribution
117+
118+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119+
version 2.1, available at
120+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
121+
122+
Community Impact Guidelines were inspired by
123+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
124+
125+
For answers to common questions about this code of conduct, see the FAQ at
126+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
127+
[https://www.contributor-covenant.org/translations][translations].
128+
129+
[homepage]: https://www.contributor-covenant.org
130+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
131+
[Mozilla CoC]: https://github.com/mozilla/diversity
132+
[FAQ]: https://www.contributor-covenant.org/faq
133+
[translations]: https://www.contributor-covenant.org/translations

frameworks/C++/libsniper/libs/core

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit a792ecfebb02f98bbdd8db232fba69f3f92907b3

frameworks/C++/userver/README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@
22

33
This is the [userver](https://github.com/userver-framework/userver) portion of a [benchmarking test suite](https://github.com/TechEmpower/FrameworkBenchmarks) comparing a variety of web development platforms.
44

5-
This benchmarks comes in two configurations: **userver** and **userver-bare**, where both configurations use exactly the same handlers code, but **userver-bare** replaces default http implementation of **userver** with custom one.
6-
You see, **userver** being feature-rich framework widely used in production comes with a lot of useful functionality built-in (metrics, dynamic configuring, logging/tracing, congestion control etc...) none of which is of any use in benchmarks; although most of that can be disabled via configs, some parts remain, and these parts aren't free.
7-
The aim of **userver-bare** is to explore practical limits of lower-level **userver** functionality when performance is an absolute must, while still being idiomatic userver code.
8-
95
### Test Type Implementation Source Code
106

117
* [Plaintext](userver_benchmark/controllers/plaintext/handler.cpp)
128
* [Json](userver_benchmark/controllers/json/handler.cpp)
9+
* [Fortunes](userver_benchmark/controllers/fortunes/handler.cpp)
1310
* [Single Database Query](userver_benchmark/controllers/single_query/handler.cpp)
1411
* [Multiple Database Queries](userver_benchmark/controllers/multiple_queries/handler.cpp)
1512
* [Database Updates](userver_benchmark/controllers/updates/handler.cpp)
@@ -24,6 +21,10 @@ http://localhost:8080/plaintext
2421

2522
http://localhost:8080/json
2623

24+
### Fortunes
25+
26+
http://localhost:8080/fortunes
27+
2728
### Single Database Query
2829

2930
http://localhost:8080/db

frameworks/C++/userver/benchmark_config.json

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,6 @@
2525
"display_name": "userver",
2626
"notes": "",
2727
"versus": "None"
28-
},
29-
"bare": {
30-
"json_url": "/json",
31-
"plaintext_url": "/plaintext",
32-
"db_url": "/db",
33-
"query_url": "/queries?queries=",
34-
"update_url": "/updates?queries=",
35-
"cached_query_url": "/cached-queries?count=",
36-
"fortune_url": "/fortunes",
37-
"port": 8081,
38-
"approach": "Realistic",
39-
"classification": "Micro",
40-
"database": "postgres",
41-
"framework": "userver",
42-
"language": "C++",
43-
"flavor": "None",
44-
"orm": "Micro",
45-
"platform": "None",
46-
"webserver": "None",
47-
"os": "Linux",
48-
"database_os": "Linux",
49-
"display_name": "userver[bare]",
50-
"notes": "",
51-
"versus": "None"
5228
}
5329
}
5430
]

frameworks/C++/userver/config.toml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,3 @@ orm = "Micro"
1818
platform = "None"
1919
webserver = "None"
2020
versus = "None"
21-
22-
[bare]
23-
urls.plaintext = "/plaintext"
24-
urls.json = "/json"
25-
urls.db = "/db"
26-
urls.query = "/queries?queries="
27-
urls.update = "/updates?queries="
28-
urls.cached_query = "/cached-queries?count="
29-
urls.fortune = "/fortunes"
30-
approach = "Realistic"
31-
classification = "Micro"
32-
database = "Postgres"
33-
database_os = "Linux"
34-
os = "Linux"
35-
orm = "Micro"
36-
platform = "None"
37-
webserver = "None"
38-
versus = "None"

frameworks/C++/userver/userver-bare.dockerfile

Lines changed: 0 additions & 29 deletions
This file was deleted.

frameworks/C++/userver/userver.dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ RUN apt update && \
66

77
WORKDIR /src
88
RUN git clone https://github.com/userver-framework/userver.git && \
9-
cd userver && git checkout ec1a3b07793f8d4cd0968cd61d8e6079d667a1e7
9+
cd userver && git checkout bdd5e1e03921ff378b062f86a189c3cfa3d66332
1010

1111
COPY userver_benchmark/ ./
1212
RUN mkdir build && cd build && \
1313
cmake -DUSERVER_IS_THE_ROOT_PROJECT=0 -DUSERVER_FEATURE_CRYPTOPP_BLAKE2=0 \
1414
-DUSERVER_FEATURE_UTEST=0 \
1515
-DUSERVER_FEATURE_POSTGRESQL=1 \
1616
-DUSERVER_FEATURE_ERASE_LOG_WITH_LEVEL=warning \
17-
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=native -flto=thin" -DCMAKE_C_FLAGS="-march=native -flto=thin" \
17+
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=native" -DCMAKE_C_FLAGS="-march=native" \
1818
-DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_C_COMPILER=clang-16 -DUSERVER_USE_LD=lld-16 \
1919
-DUSERVER_LTO=0 .. && \
2020
make -j $(nproc)

frameworks/C++/userver/userver_benchmark/userver_techempower.cpp

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,6 @@ class NoopTracingManager final
4646
userver::server::http::HttpResponse&) const final {}
4747
};
4848

49-
class MinimalMiddlewarePipelineBuilder final
50-
: public userver::server::middlewares::PipelineBuilder {
51-
public:
52-
static constexpr std::string_view kName{
53-
"minimal-middleware-pipeline-builder"};
54-
using userver::server::middlewares::PipelineBuilder::PipelineBuilder;
55-
56-
private:
57-
userver::server::middlewares::MiddlewaresList BuildPipeline(
58-
userver::server::middlewares::MiddlewaresList) const override {
59-
return {"userver-unknown-exceptions-handling-middleware"};
60-
}
61-
};
62-
6349
int Main(int argc, char* argv[]) {
6450
auto component_list =
6551
userver::components::MinimalServerComponentList()
@@ -78,10 +64,9 @@ int Main(int argc, char* argv[]) {
7864
.Append<cached_queries::WorldCacheComponent>() // cache component
7965
.Append<cached_queries::Handler>()
8066
.Append<fortunes::Handler>()
81-
// tracing and metrics tweaks
67+
// tracing tweaks
8268
.Append<NoopTracingManager>()
83-
.Append<MinimalMiddlewarePipelineBuilder>()
84-
// bare
69+
// bare (not used in the benchmark currently)
8570
.Append<bare::SimpleRouter>()
8671
.Append<bare::SimpleServer>();
8772

frameworks/C++/userver/userver_configs/static_config.yaml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# yaml
22
components_manager:
33
event_thread_pool:
4-
threads: 9
5-
dedicated_timer_threads: 1
4+
threads: 8
65
coro_pool:
76
initial_size: 10000 # Preallocate 10000 coroutines at startup.
87
max_size: 300000 # Do not keep more than 300000 preallocated coroutines.
@@ -12,7 +11,7 @@ components_manager:
1211

1312
main-task-processor: # Make a task processor for CPU-bound couroutine tasks.
1413
thread_name: main-worker # OS will show the threads of this task processor with 'main-worker' prefix.
15-
worker_threads: 46
14+
worker_threads: 48
1615
guess-cpu-limit: true
1716

1817
fs-task-processor: # Make a separate task processor for filesystem bound tasks.
@@ -29,7 +28,6 @@ components_manager:
2928
handler-defaults:
3029
set_tracing_headers: false
3130
server-name: us
32-
middleware-pipeline-builder: minimal-middleware-pipeline-builder
3331
simple-router:
3432
simple-server:
3533
port: 8081
@@ -63,7 +61,6 @@ components_manager:
6361
noop-tracing-manager:
6462
tracing-manager-locator:
6563
component-name: noop-tracing-manager
66-
minimal-middleware-pipeline-builder:
6764

6865
plaintext-handler:
6966
path: /plaintext

0 commit comments

Comments
 (0)