Commit Graph

314 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 1f97e8d9d6 Added timing test for AppendUint 2015-11-28 22:58:52 +02:00
Aliaksandr Valialkin b969bc45fd Added a net/http advantage - it works on go older than 1.5 2015-11-28 22:29:47 +02:00
Aliaksandr Valialkin 54b3bf6b21 fixed spelling typo 2015-11-28 21:48:58 +02:00
Aliaksandr Valialkin 9c0213caa1 Issue #4: added a question about real benchmark data and server information 2015-11-28 21:43:13 +02:00
Aliaksandr Valialkin 980fd60719 Issue #5: Added a question on which go versions are supported by fasthttp 2015-11-28 21:00:17 +02:00
Aliaksandr Valialkin 58d404c7e9 Issue #7: an attempt to blindly fix arm build according to @msoap suggestion 2015-11-28 20:47:17 +02:00
Aliaksandr Valialkin 145fa563c6 Removed flackiness from Logger tests by skipping request duration 2015-11-28 20:45:02 +02:00
Aliaksandr Valialkin a86ebd88ea Issue #7: fixed unaligned 64-bit access on ARM in client code 2015-11-28 20:10:18 +02:00
Aliaksandr Valialkin 311af04a67 Issue #6: Added missing test 2015-11-28 19:46:48 +02:00
Aliaksandr Valialkin b1ba91323e Issue #6: allow setting content-type on on-POST requests 2015-11-28 19:46:15 +02:00
Aliaksandr Valialkin b5b13c1e39 Added missing line 2015-11-28 17:39:38 +02:00
Aliaksandr Valialkin 1d1f585a18 Updated benchmark results 2015-11-28 17:38:49 +02:00
Aliaksandr Valialkin 895d083879 README prettifying 2015-11-28 17:28:26 +02:00
Aliaksandr Valialkin d8c882d360 scalability improvement: initialize RequestCtx.id only when creating new RequestCtx obect. This should reduce globalCtxID contention 2015-11-28 17:23:53 +02:00
Aliaksandr Valialkin a5a2571194 scalability improvement: make firstByteReader's pool per-server 2015-11-28 17:14:32 +02:00
Aliaksandr Valialkin 78f1cc863a hijack scalability improvement: make hijacked conn per-server 2015-11-28 17:12:01 +02:00
Aliaksandr Valialkin 9b2eb87b64 README prettifying... 2015-11-28 17:00:42 +02:00
Aliaksandr Valialkin f1137c4f5a README prettifying 2015-11-28 16:59:23 +02:00
Aliaksandr Valialkin 6078ab00a9 FAQ prettifying 2015-11-28 16:54:16 +02:00
Aliaksandr Valialkin 441e559653 Removed superflous 'A: ' from FAQ 2015-11-28 15:15:37 +02:00
Aliaksandr Valialkin 638a9037be FAQ section prettifying 2015-11-28 15:14:29 +02:00
Aliaksandr Valialkin f73217cecf spelling fix 2015-11-28 15:08:49 +02:00
Aliaksandr Valialkin 8563a2e762 Follow redirects in client Get* and Post* methods. Added Redirect method to RequestCtx. 2015-11-28 14:47:19 +02:00
Aliaksandr Valialkin 9f27e4c2b0 Added Update and CopyTo methods to URI 2015-11-28 14:45:13 +02:00
Aliaksandr Valialkin efb4e2cd30 Fixed a typo 2015-11-28 14:17:11 +02:00
Aliaksandr Valialkin 7ac1da178f Updated the answer about net/http advantages 2015-11-28 10:48:04 +02:00
Aliaksandr Valialkin 87d525b89a Removed unused Logger from Client and HostClient 2015-11-28 10:42:01 +02:00
Aliaksandr Valialkin d7ecf59c5d Added Request.RemoveMultipartFormFiles for removing temporary files created during reading multipart/form-data request 2015-11-28 10:32:55 +02:00
Aliaksandr Valialkin cc79b27b51 Imporoved multipart/form-data support.
* The server automatically deletes temporary uploaded files after returning
  from RequestHandler.
* Multipart data is automatically streamed into temporary files on request
  reading. This limits memory usage for big file uploads.
2015-11-28 10:18:03 +02:00
Aliaksandr Valialkin a0cc899f64 Removed TCP_DEFER_ACCEPT from reuseport listening socket, since it has no measurable performance wins, but has a drawback that the established connection lifetime cannot be controlled by user program until the client sends initial request 2015-11-28 09:26:18 +02:00
Aliaksandr Valialkin 3eba841bb6 Use deferred accept in reuseport.Listener. This should reduce the number of context switches for busy servers accepting a lot of new connections per second. Will test it, since google says TCP_DEFER_ACCEPT option is useless :) 2015-11-27 17:59:38 +02:00
Aliaksandr Valialkin 02a86866ef Increased maximum in-memory file size from 1MB to 16MB 2015-11-27 16:24:52 +02:00
Aliaksandr Valialkin 01031f43e2 Added support form multipart/form-data POST requests 2015-11-27 16:23:02 +02:00
Aliaksandr Valialkin fa4d6b1581 Added FAQ section to README 2015-11-27 15:07:29 +02:00
Aliaksandr Valialkin df6fda8c33 Added ability to limit request body size on the server and response body size on the client 2015-11-27 13:22:15 +02:00
Aliaksandr Valialkin c0c5793fda Updated TODO 2015-11-27 12:24:44 +02:00
Aliaksandr Valialkin 4aac41a918 Use the most optimized AppendBytesStr() implementation - append(dst, src..) :) 2015-11-26 20:10:51 +02:00
Aliaksandr Valialkin c695c83986 Added RequestCtx.IsTLS, which may be used for determining whether the connection is encrypted 2015-11-26 18:55:26 +02:00
Aliaksandr Valialkin b31fd30964 Added benchmark for comparing unequal strings with EqualBytesStr 2015-11-26 17:57:44 +02:00
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