-- Simple tiscaf benchmarking -- 1. Both server and ApacheBench are running on the same workstation (Intel i5 760 at 3.2GHz). Operating system is Arch Linux with default TCP/IP stack settings (except for setting 'net.ipv4.tcp_syncookies=0' in /etc/sysctl.conf and approriate limits for opened files number). 2. Complete server code: import zgs.httpd._ object ServerOk extends HServer { def main(args: Array[String]): Unit = { try { new HStop(8911) stop } catch { case _ => } Thread.sleep(600) start } protected def ports = Set(8910) protected lazy val apps = List(theApp) override protected def tcpNoDelay = true // true for benchmarking only!! override protected def interruptTimeoutMillis = 100 override protected def onError(e: Throwable): Unit = filterSomeErrors(e) private def filterSomeErrors(err: Throwable): Unit = err.getMessage match { case "Broken pipe" => case "Connection reset by peer" => case _ => err match { case _: java.nio.channels.ClosedSelectorException => case e => e.printStackTrace } } object theApp extends HApp { override def keepAlive = true override def chunked = false override def buffered = false override def gzip = false override def tracking = HTracking.NotAllowed def resolve(req: HReqHeaderData) = Some(Let) } object Let extends HLet { private val bytes = "Ok".getBytes("UTF-8") def act(tk: HTalk) { tk.setContentLength(bytes.size) .setContentType("text/plain; charset=UTF-8") .setContentLength(bytes.length) // if not buffered .write(bytes) } } } 3. ApacheBench output ~ $ ab -c 20000 -n 1000000 -k 127.0.0.1:8910/ok This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: tiscaf Server Hostname: 127.0.0.1 Server Port: 8910 Document Path: /ok Document Length: 2 bytes Concurrency Level: 20000 Time taken for tests: 11.985 seconds Complete requests: 1000000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 1000000 Total transferred: 216057888 bytes HTML transferred: 2000536 bytes Requests per second: 83436.06 [#/sec] (mean) Time per request: 239.704 [ms] (mean) Time per request: 0.012 [ms] (mean, across all concurrent requests) Transfer rate: 17604.51 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 4 133.5 0 7030 Processing: 12 79 48.0 75 3105 Waiting: 12 79 48.0 75 3105 Total: 12 83 156.6 75 10088 Percentage of the requests served within a certain time (ms) 50% 75 66% 84 75% 90 80% 96 90% 108 95% 123 98% 142 99% 156 100% 10088 (longest request)