stefanocasazza vor 10 Jahren
Ursprung
Commit
9571029201

+ 1 - 0
frameworks/C++/ULib/install.sh

@@ -43,6 +43,7 @@ if [ ! -f "benchmark.cfg" ]; then
 userver {
  PORT 8080
  PREFORK_CHILD 4
+ TCP_LINGER_SET -1
  LISTEN_BACKLOG 256
  ORM_DRIVER "mysql pgsql sqlite"
  DOCUMENT_ROOT $ULIB_DOCUMENT_ROOT

+ 5 - 3
frameworks/C++/ULib/setup_json.sh

@@ -1,10 +1,12 @@
 #!/bin/bash
 
 # 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"										$IROOT/ULib/benchmark.cfg
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g"					  $IROOT/ULib/benchmark.cfg
+sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
 
 # 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export UMEMPOOL="56,0,0,40,150,-24,-13,-20,0"
 
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 5 - 3
frameworks/C++/ULib/setup_mysql.sh

@@ -1,12 +1,14 @@
 #!/bin/bash
 
 # 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g"					  $IROOT/ULib/benchmark.cfg
+sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
 
 # 2. Start ULib Server (userver_tcp)
 export ORM_DRIVER="mysql"
-export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export UMEMPOOL="146,0,0,90,150,-22,-12,-20,0"
 export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world"
 
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 5 - 3
frameworks/C++/ULib/setup_plaintext.sh

@@ -1,10 +1,12 @@
 #!/bin/bash
 
 # 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 16384|g"		  $IROOT/ULib/benchmark.cfg
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"										$IROOT/ULib/benchmark.cfg
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 16384|g"								$IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g"						$IROOT/ULib/benchmark.cfg
+sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 8000|g" $IROOT/ULib/benchmark.cfg
 
 # 2. Start ULib Server (userver_tcp)
-export UMEMPOOL="50,0,0,0,8356,170,-13,-22,0"
+export UMEMPOOL="982,0,0,36,9846,-24,-23,1727,1151"
 
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 5 - 3
frameworks/C++/ULib/setup_postgres.sh

@@ -1,12 +1,14 @@
 #!/bin/bash
 
 # 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET -2|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g"					  $IROOT/ULib/benchmark.cfg
+sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
 
 # 2. Start ULib Server (userver_tcp)
 export ORM_DRIVER="pgsql"
-export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export UMEMPOOL="146,0,0,90,150,-22,-12,-20,0"
 export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8"
 
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 5 - 3
frameworks/C++/ULib/setup_sqlite.sh

@@ -1,12 +1,14 @@
 #!/bin/bash
 
 # 1. Change ULib Server (userver_tcp) configuration
-sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"			  $IROOT/ULib/benchmark.cfg
-sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g" $IROOT/ULib/benchmark.cfg
+sed -i "s|TCP_LINGER_SET .*|TCP_LINGER_SET 0|g"									  $IROOT/ULib/benchmark.cfg
+sed -i "s|LISTEN_BACKLOG .*|LISTEN_BACKLOG 256|g"								  $IROOT/ULib/benchmark.cfg
+sed -i "s|PREFORK_CHILD .*|PREFORK_CHILD ${MAX_THREADS}|g"					  $IROOT/ULib/benchmark.cfg
+sed -i "s|CLIENT_FOR_PARALLELIZATION .*|CLIENT_FOR_PARALLELIZATION 100|g" $IROOT/ULib/benchmark.cfg
 
 # 2. Start ULib Server (userver_tcp)
 export ORM_DRIVER="sqlite"
-export UMEMPOOL="136,0,0,100,150,-22,-17,-23,40"
+export UMEMPOOL="146,0,0,90,150,-22,-12,-20,0"
 export ORM_OPTION="host=${DBHOST} user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=${IROOT}/ULib/db/%.*s"
 
 $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg &

+ 15 - 13
frameworks/C++/ULib/src/fortune.usp

@@ -7,6 +7,7 @@ TechEmpower Web Framework Benchmarks
 
 static Fortune*           pfortune;
 static UString*           pmessage;
+static UString*           pencoded;
 static UOrmSession*       psql_fortune;
 static UOrmStatement*     pstmt_fortune;
 static UVector<Fortune*>* pvfortune;
@@ -29,6 +30,7 @@ static void usp_fork_fortune()
 
       pstmt_fortune->into(*pfortune);
 
+      pencoded  = U_NEW(UString(100U));
       pmessage  = U_NEW(U_STRING_FROM_CONSTANT("Additional fortune added at request time."));
       pvfortune = U_NEW(UVector<Fortune*>);
       }
@@ -40,21 +42,19 @@ static void usp_end_fortune()
    U_TRACE(5, "::usp_end_fortune()")
 
    if (pstmt_fortune)
-   {
-   delete pstmt_fortune;
+      {
+      delete pstmt_fortune;
 
-   delete psql_fortune;
-   delete pvfortune;
-   delete pfortune;
-   delete pmessage;
-   }
+      delete psql_fortune;
+      delete pvfortune;
+      delete pfortune;
+      delete pmessage;
+      delete pencoded;
+      }
 }
 #endif
 -->
 <!doctype html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr><!--#code
-Fortune* elem;
-unsigned char encoded[1024];
-
 pstmt_fortune->execute();
 
      pvfortune->push_back(U_NEW(Fortune(0, *pmessage)));
@@ -64,14 +64,16 @@ pvfortune->sort(Fortune::cmp_obj);
 
 for (uint32_t i = 0, n = pvfortune->size(); i < n; ++i)
    {
-   elem = (*pvfortune)[i];
+   Fortune* elem = (*pvfortune)[i];
+
+   UXMLEscape::encode(elem->message, *pencoded);
 
    USP_PRINTF_ADD(
       "<tr>"
       "<td>%u</td>"
-      "<td>%.*s</td>"
+      "<td>%v</td>"
       "</tr>",
-      elem->id, u_xml_encode((const unsigned char*)U_STRING_TO_PARAM(elem->message), encoded), encoded);
+      elem->id, pencoded->rep);
    }
 
 pvfortune->clear();