From 2368dc53d0c724f1899aeb2874ba1a763e11f0b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= <essen@ninenines.eu>
Date: Mon, 29 Jan 2024 15:40:26 +0100
Subject: Cowboy 2.11

---
 docs/en/cowboy/2.11/guide/performance.asciidoc | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 docs/en/cowboy/2.11/guide/performance.asciidoc

(limited to 'docs/en/cowboy/2.11/guide/performance.asciidoc')

diff --git a/docs/en/cowboy/2.11/guide/performance.asciidoc b/docs/en/cowboy/2.11/guide/performance.asciidoc
new file mode 100644
index 00000000..10031302
--- /dev/null
+++ b/docs/en/cowboy/2.11/guide/performance.asciidoc
@@ -0,0 +1,29 @@
+[[performance]]
+== Performance
+
+This chapter describes the performance characteristics
+of Cowboy and offers suggestions to get the most
+performance out of your application.
+
+=== One process per connection
+
+The first version of Cowboy featured a single process
+per connection, whereas the current version of Cowboy
+features one process per connection plus one process
+per request. This has a negative impact on performance,
+but is necessary in order to provide a common interface
+for both HTTP/1.1 and HTTP/2 (as well as future HTTP
+versions).
+
+It is still possible to use a single process per
+connection, and avoid the creation of additional
+processes for each request, by implementing a
+stream handler to process the requests. This can
+be done for all requests, or just for a single
+endpoint depending on the application's needs.
+
+Stream handlers provide an asynchronous interface
+and must not block, so the implementation will
+be very different from normal Cowboy handlers,
+but the performance gains are important enough
+to justify it in some cases.
-- 
cgit v1.2.3

