Commit Graph

275 Commits

Author SHA1 Message Date
Aliaksandr Valialkin a3fd75d237 Eliminated memory allocations from client's DoTimeout and GetTimeout 2015-11-26 17:04:27 +02:00
Aliaksandr Valialkin bc85e2b572 workerpool: immediately switch to connection processing if GOMAXPROCS=1. This improves single-threaded server performance by 1-2% 2015-11-26 12:38:18 +02:00
Aliaksandr Valialkin 8b00288e0a Skip br.Buffered() verification, since it is guaranteed it is higher than 0 if br != nil 2015-11-26 12:22:24 +02:00
Aliaksandr Valialkin ffca8866f9 gofmt 2015-11-26 12:21:34 +02:00
Aliaksandr Valialkin 1c4474c96f Made fakeListener.Accept() safe for concurrent use 2015-11-25 17:33:57 +02:00
Aliaksandr Valialkin 79313ec7a9 Fixed a bug in ipv4 addresses resolution if the resolved ip addresses contain non-zero number of ipv6 addresses 2015-11-25 15:23:42 +02:00
Aliaksandr Valialkin 6816e2b03c Clients dial only ipv4 addresses by default due to bad ipv6 support in our networks. Use DialDualStack for dialing both ipv4 and ipv6 addresses 2015-11-25 15:14:31 +02:00
Aliaksandr Valialkin 0fa8e8efc7 Client: dial both tcp4 and tcp6 addresses 2015-11-25 14:30:51 +02:00
Aliaksandr Valialkin aa3b9144de Fixed user-agent string in TestRequestString 2015-11-25 14:30:09 +02:00
Aliaksandr Valialkin 0c6b0a01a1 Shorten default server and client names 2015-11-25 13:46:19 +02:00
Aliaksandr Valialkin 0b2690febe Added GetTimeout method to client 2015-11-25 13:45:34 +02:00
Aliaksandr Valialkin 9decd4d0ac Properly handle negative timeouts in client's DoTimeout 2015-11-24 17:33:25 +02:00
Aliaksandr Valialkin c6fcca3ae6 Added ReadTimeout and WriteTimeout settings to client 2015-11-24 17:14:34 +02:00
Aliaksandr Valialkin 9e35210a5a Fixed possible data race on RequestCtx.TimeoutError if connection's buffered reader is attached to ctx.fbr 2015-11-24 16:56:29 +02:00
Aliaksandr Valialkin 52c04f13b2 Added support for 'Connection: Upgrade', so RequestHandler may detect such connections and hijack them 2015-11-24 15:48:10 +02:00
Aliaksandr Valialkin 6a90e62dd3 Fixed data race when hijacked conn is backed by firstByteReader, which is attached to RequestCtx 2015-11-24 15:42:52 +02:00
Aliaksandr Valialkin 71ebcd76bf Updated production performance numbers in readme 2015-11-24 15:04:37 +02:00
Aliaksandr Valialkin 45e1d5a313 fixed a typo 2015-11-24 13:59:51 +02:00
Aliaksandr Valialkin 45ed911251 Improved RequestCtx.Hijack() - now HijackHandler works with the real net.Conn instead of fake io.ReadWriter. Also reduced memory usage by releasing empty read buffers on hijacked connections 2015-11-24 13:55:00 +02:00
Aliaksandr Valialkin cd4ace5409 Close connection and release worker channel on panic in WorkerFunc 2015-11-24 13:40:39 +02:00
Aliaksandr Valialkin 2d41d2b734 Optimized AppendBytesStr - now it is 2x faster 2015-11-24 13:22:34 +02:00
Aliaksandr Valialkin 29de7735ce Added benchmark for AppendBytesStr 2015-11-24 13:21:13 +02:00
Aliaksandr Valialkin 341bd090d0 Updated best practicies section in README.md 2015-11-24 12:57:57 +02:00
Aliaksandr Valialkin 961eef082b Optimized EqualBytesStr 2015-11-24 12:57:01 +02:00
Aliaksandr Valialkin 146145240d Added RequestCtx.Hijack() for connections' hijacking 2015-11-23 19:41:43 +02:00
Aliaksandr Valialkin 6773e97ef4 Added a tip for writing tests and benchmarks for hot paths 2015-11-23 17:02:52 +02:00
Aliaksandr Valialkin 5e36ee0947 Added benchmarks for lowercaseBytes 2015-11-23 16:58:29 +02:00
Aliaksandr Valialkin e8afd90adc Added missing package name to reuseport 2015-11-23 14:22:30 +02:00
Aliaksandr Valialkin 1fb0888104 Moved ErrKeepaliveTimeout to ServeConn errors section 2015-11-23 14:21:31 +02:00
Aliaksandr Valialkin a81d93c2ae Added ability to limit keep-alive connection lifetime 2015-11-23 14:17:49 +02:00
Aliaksandr Valialkin 008cf7d419 Added 'best practicies' section to readme 2015-11-23 13:39:39 +02:00
Aliaksandr Valialkin 70269b237a Clarified that ReduceMemoryUsage may be used when serving more than 1M concurrent mostly idle keep-alive connections 2015-11-23 13:14:57 +02:00
Aliaksandr Valialkin bb38369834 Suppress too chatty 'reset by peer' errors when serving clients, which unexpectedly close connections 2015-11-23 13:01:36 +02:00
Aliaksandr Valialkin 76f453b7fc Suppress too chatty 'broken pipe' errors when serving clients, which unexpectedly close connections 2015-11-23 12:57:37 +02:00
Aliaksandr Valialkin 3a1a2ddfc8 Randomize sleep time in Client.DoTimeout when waiting for free connection to the host 2015-11-23 12:26:32 +02:00
Aliaksandr Valialkin 295e2bcd15 Return error message instead of http request/response representation on error in Request.String and Response.String 2015-11-23 12:23:44 +02:00
Aliaksandr Valialkin 49a2103c07 Clear ctx in Server.serveConn while waiting for the next request in acquireByteReader(). This should help GC collecting ctx objects 2015-11-23 12:18:53 +02:00
Aliaksandr Valialkin c9abc7ac4c Added String method to Request and Response 2015-11-22 16:47:27 +02:00
Aliaksandr Valialkin d5e425206e Consistency fix: BenchmarkNetHTTPServerGet10000ReqPerConn -> BenchmarkNetHTTPServerGet10KReqPerConn 2015-11-22 16:33:37 +02:00
Aliaksandr Valialkin 74ab3b6c1f Correct list items in performance optimization tips 2015-11-22 14:59:45 +02:00
Aliaksandr Valialkin 9ad4daf0c7 Removed trailing dot from heading 2015-11-22 14:57:50 +02:00
Aliaksandr Valialkin 8785e26ecb Added performance optimization tips section to readme 2015-11-22 14:57:05 +02:00
Aliaksandr Valialkin 351cfa1153 Added ReduceMemoryUsage option to Server 2015-11-22 14:39:41 +02:00
Aliaksandr Valialkin 6fd47e0afc docs update 2015-11-22 14:17:41 +02:00
Aliaksandr Valialkin 2ab14db72f More marketing in readme :) 2015-11-22 14:16:41 +02:00
Aliaksandr Valialkin 8528d53d2c Updated README.md 2015-11-22 14:08:31 +02:00
Aliaksandr Valialkin 3cc7fe9675 Moved byte slice manipulation functions to bytesconv.go 2015-11-22 13:45:42 +02:00
Aliaksandr Valialkin 016fda260f Updated docs 2015-11-22 13:41:30 +02:00
Aliaksandr Valialkin 9f7463cd28 Access Cookie members via accessors 2015-11-22 13:29:21 +02:00
Aliaksandr Valialkin 46ac549ae1 Access URI members via accessors 2015-11-22 13:05:24 +02:00