Commit Graph

255 Commits

Author SHA1 Message Date
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
Aliaksandr Valialkin 82811d58f6 Added AppendBytes and WriteTo to URI 2015-11-22 06:39:06 +02:00
Aliaksandr Valialkin a862d8592a Documentation update 2015-11-22 06:33:58 +02:00
Aliaksandr Valialkin 2d18e84d04 Handle 'no free connections to host' error when doing request with user-defined timeout 2015-11-22 06:00:04 +02:00
Aliaksandr Valialkin 0cd1e39f77 Added package docs 2015-11-22 05:43:12 +02:00
Aliaksandr Valialkin 14fcfcd65b Properly track connection start time and per-connection request num 2015-11-22 04:34:26 +02:00
Aliaksandr Valialkin 96b9f2cd84 gofmt 2015-11-22 04:33:57 +02:00
Aliaksandr Valialkin 6be8800950 Properly keep request start time in acquireByteReader 2015-11-22 04:11:37 +02:00
Aliaksandr Valialkin e4478bf22e Added tests for Header.Write 2015-11-22 02:41:27 +02:00
Aliaksandr Valialkin 82aca55d5a API consistency fix - GetCookie -> Cookie, PeekCookie -> Cookie 2015-11-22 02:16:05 +02:00
Aliaksandr Valialkin 22c2789727 Added WriteTo, AppendBytes and String methods to RequestHeander and ResponseHeader 2015-11-22 02:14:09 +02:00
Aliaksandr Valialkin 924d119e96 Added Cookie.WriteTo 2015-11-22 01:32:39 +02:00
Aliaksandr Valialkin a8bfab03d8 API prettifying: ServeConnTime -> ConnTime, ServeConnRequestNum -> ConnRequestNum 2015-11-22 01:29:42 +02:00
Aliaksandr Valialkin 0109f3a8d6 Defer allocating RequestCtx if requests' frequency on keep-alive connection is less than 1 HZ (1 req/s). This reduces memory usage for servers with a million of concurrent connections with infrequent requests 2015-11-22 01:22:31 +02:00
Aliaksandr Valialkin dec5ac841c Fixed a bug with improper HostClient map updating in Client.Do. This bug led to new HostClient creation on each Client.Do request 2015-11-22 01:10:41 +02:00
Aliaksandr Valialkin 5af424687b Removed obsolete comment 2015-11-22 00:41:34 +02:00
Aliaksandr Valialkin 5407951c06 Do not parse raw headers when writing request headers. This should improve request proxying speed 2015-11-22 00:41:06 +02:00
Aliaksandr Valialkin 47e6a79de6 Added missing doc string 2015-11-22 00:39:45 +02:00
Aliaksandr Valialkin 982240828b Set SO_REUSEADDR in reuseport.Listen() like standard net package do 2015-11-20 15:03:41 +02:00
Aliaksandr Valialkin a109d2bb6e Renamed NewListener to Listener to be consistent with go's net package 2015-11-20 14:55:22 +02:00
Aliaksandr Valialkin db29399a7d Added net.Listener with reuseport support 2015-11-20 14:46:12 +02:00