Erik Dubbelboer
f2ddaffc31
Remove CoarseTime
...
It is not clear why @valyala introduced this coarse time. Benchmarks on
different systems show that the speedup is no where enough to justify
the added code complexity and bugs it seems to have introduced.
Mac:
BenchmarkCoarseTimeNow-8 2000000000 2.49 ns/op
0 B/op 0 allocs/op
BenchmarkTimeNow-8 500000000 3.14 ns/op
0 B/op 0 allocs/op
Ubuntu:
BenchmarkCoarseTimeNow-4 300000000 6.74 ns/op
0 B/op 0 allocs/op
BenchmarkTimeNow-4 100000000 15.9 ns/op
0 B/op 0 allocs/op
This reverts commit https://github.com/erikdubbelboer/fasthttp/commit/6309f42188ecb28ccf8ac58442739cdb43d75d9e
and https://github.com/erikdubbelboer/fasthttp/commit/32c72cde80f0c591604f825586d6a4bbbb39d9c5 .
See: https://github.com/valyala/fasthttp/issues/271 ,
https://github.com/valyala/fasthttp/pull/269 and
https://github.com/valyala/fasthttp/issues/261 .
2018-08-17 17:15:41 +08:00
Kirill Danshin
4a16377d6e
Merge pull request #303 from chebyrash/master
...
Typo fixes
2018-08-13 23:18:55 +03:00
Kirill Danshin
8c70077e43
Merge branch 'master' of github.com:valyala/fasthttp
2018-08-13 01:53:56 +03:00
Kirill Danshin
21b8fa5920
ci: temporary disable goimports check
...
Signed-off-by: Kirill Danshin <kirill@danshin.pro >
2018-08-13 01:53:48 +03:00
Kirill Danshin
b4967a0d49
Merge pull request #339 from phachon/master
...
Update README.md
2018-08-13 01:50:41 +03:00
Kirill Danshin
bb3bb6295c
Merge pull request #255 from rikvdh/patch-1
...
Remove iris from README, latest v6 removes fasthttp support
2018-08-13 01:49:28 +03:00
Kirill Danshin
78854f3794
ci: try yet another fix for goimports check
...
Signed-off-by: Kirill Danshin <kirill@danshin.pro >
2018-08-13 01:43:55 +03:00
Kirill Danshin
5edd8e0f2f
Merge branch 'master' of github.com:valyala/fasthttp
2018-08-13 01:31:38 +03:00
Kirill Danshin
f5f97aa484
ci: try yet another way for goimports check
...
Signed-off-by: Kirill Danshin <kirill@danshin.pro >
2018-08-13 01:27:46 +03:00
Kirill Danshin
fb5347a023
Merge pull request #231 from erikdubbelboer/testport
...
Use random ports for tests
2018-08-13 00:51:23 +03:00
Kirill Danshin
e38135e90d
Merge pull request #332 from 4oi/master
...
Add missing http methods
2018-08-13 00:49:27 +03:00
Kirill Danshin
ae73e1bec7
ci: use another way to check if source code formatted
...
Signed-off-by: Kirill Danshin <kirill@danshin.pro >
2018-08-13 00:12:54 +03:00
Kirill Danshin
110dea26f8
ci, reuseport, writer: update travis config and goimports -w on whole project
...
Signed-off-by: Kirill Danshin <kirill@danshin.pro >
2018-08-12 23:56:32 +03:00
Kirill Danshin
bca56ee107
Update LICENSE
2018-08-12 21:35:55 +03:00
phachon
31c1eb0c34
Update README.md
...
add fasthttpsession project
2018-05-08 17:37:34 +08:00
toyblocks
a84dc2dc0e
Add missing http methods
...
Add support for 'CONNECT', 'OPTIONS', 'TRACE' and 'PATCH'
2018-03-12 07:00:21 +09:00
Aliaksandr Valialkin
e5f51c1191
added missing byte 0xFF into hex2intTable. This fixes panic when decoding specially crafted string like "%\xff"
v20180529
2017-12-07 14:09:41 +02:00
Aliaksandr Valialkin
51bb00256c
attempt #2 to fix TestTCP6 on travis: run the test only if local tcp6 interface is present
2017-11-08 19:16:02 +02:00
Aliaksandr Valialkin
cb0855b7a4
an attempt to fix TestTCP6 on travis. It looks like travis doesnt know about ip6-localhost. Substitute it with [::1]
2017-11-08 14:10:58 +02:00
Aliaksandr Valialkin
56554327e4
Update go version to 1.9.x and 1.8.x for travis builds
2017-11-08 14:06:54 +02:00
Aliaksandr Valialkin
e2ac397815
Parse bogus uris with missing slash after hostname like http://foobar.com?baz=123 , since such uris occur in real life :(
2017-11-08 13:05:29 +02:00
Aliaksandr Valialkin
70ceaddfae
Added RequestCtx.String that returns unique string representation of the request context
2017-10-18 15:53:05 +03:00
xPushkin
f24d00fcc6
A lot of typo fixes
2017-10-08 13:30:35 +01:00
Aliaksandr Valialkin
5116aa64e0
Mention that the body returned from Request.Body and Response.Body is valid until the Request/Response modification
2017-09-12 13:15:57 +03:00
Aliaksandr Valialkin
bcdf16d04f
Removed superflouos slashes from documentation
2017-09-12 13:15:04 +03:00
Aliaksandr Valialkin
b43f17d9a9
Added a test that verifies that the client sends all the request headers and body to the server
2017-09-04 13:47:21 +03:00
Aliaksandr Valialkin
ae643c872d
decodeArgAppend code prettifying
2017-07-21 16:45:47 +03:00
Aliaksandr Valialkin
6ece3d9359
decodeArgAppend* optimization: remove bounds check when decoding percent-encoded string
...
Benchmark results:
name old time/op new time/op delta
AppendUnquotedArgSlowPath-4 68.9ns ± 2% 63.5ns ± 2% -7.88% (p=0.000 n=10+10)
2017-07-21 16:42:32 +03:00
Aliaksandr Valialkin
d257ae60a3
ioptimized decodeArgAppend a bit
...
Benchmark results on linux/amd64:
name old time/op new time/op delta
ArgsParse-4 72.8ns ± 2% 68.0ns ± 2% -6.59% (p=0.000 n=10+9)
AppendUnquotedArgFastPath-4 20.4ns ± 2% 21.1ns ± 9% ~ (p=0.614 n=8+10)
AppendUnquotedArgSlowPath-4 68.9ns ± 3% 70.4ns ± 6% ~ (p=0.148 n=9+10)
URIParsePath-4 80.9ns ± 2% 78.7ns ± 2% -2.80% (p=0.000 n=10+10)
URIParsePathQueryString-4 88.9ns ± 1% 86.3ns ± 1% -2.90% (p=0.000 n=10+8)
URIParsePathQueryStringHash-4 95.7ns ± 8% 91.0ns ± 1% -4.88% (p=0.000 n=9+10)
URIParseHostname-4 98.6ns ± 1% 95.4ns ± 1% -3.24% (p=0.000 n=10+10)
2017-07-21 16:08:21 +03:00
Aliaksandr Valialkin
52a0993b96
Issue #278 : more optimizations for normalizeHeaderKey
2017-07-11 10:17:57 +03:00
Kirill Danshin
179aa635ec
add gramework ( #280 )
...
Signed-off-by: Kirill Danshin <k@guava.by >
2017-07-10 14:36:13 +03:00
Aliaksandr Valialkin
952171f61b
Issue #278 : optimize normalizeHeaderKey a bit
...
Performance results on amd64:
name old time/op new time/op delta
NormalizeHeaderKeyCommonCase-4 43.3ns ± 0% 32.6ns ± 1% -24.80% (p=0.000 n=9+10)
NormalizeHeaderKeyLowercase-4 42.6ns ± 3% 32.6ns ± 1% -23.41% (p=0.000 n=10+10)
NormalizeHeaderKeyUppercase-4 43.5ns ± 1% 32.6ns ± 2% -25.03% (p=0.000 n=9+8)
Based on top of https://github.com/valyala/fasthttp/pull/279 .
2017-07-10 14:28:06 +03:00
Aliaksandr Valialkin
498431ce67
Added missing bufio.Writer.Flush() in testResponseBodyStream*
2017-06-28 18:18:09 +03:00
Aliaksandr Valialkin
8948e047bf
Issue #176 : reset Content-Length when compression is enabled for streamed response body
2017-06-27 20:50:04 +03:00
Aliaksandr Valialkin
0f5182f9ce
added a fast path to AppendHTMLEscape when the string doesnt contain special chars
2017-06-23 19:04:29 +03:00
Aliaksandr Valialkin
6ac0fd1a91
use more clear decodeArgAppend instead of misleading decodeArg
2017-06-20 18:19:36 +03:00
Aliaksandr Valialkin
2db9429ff7
added a fast path to decodeArgAppend when the arg doesnt contain encoded chars
2017-06-20 13:40:15 +03:00
Aliaksandr Valialkin
c0de95e84b
Added AppendUnquotedArg - the complementary function to AppendQuotedArg
2017-06-19 18:35:07 +03:00
Aliaksandr Valialkin
b154429ca9
Compress responses only if their content-type starts with text/ or application/
2017-05-17 17:10:29 +03:00
Aliaksandr Valialkin
103adc311e
Do not compress responses with sizes smaller than 200 bytes
...
Compressing small bodies has little sense, since the compressed result size
may exceed the original body size.
This should save CPU time when the server responds with small responses.
2017-05-17 16:17:53 +03:00
Aliaksandr Valialkin
30e92af08f
Limit heap memory usage when compressing high number of concurrent responses
...
Previously each concurrent compression could allocate huge compression state
with the size up to 1Mb each. So 10K concurrent connections could result in
10Gb of compression state in the heap.
This CL limits the number of compression states among concurrent requests
when {Append,Write}{Gzip,Deflate}* functions are called to O(GOMAXPROCS).
These functions are used by CompressHandler* for non-streaming responses,
i.e. it should cover the majority of use cases.
Memory usage for 10K concurrent connections that compress responses drops
from 10Gb to 200Mb after this CL.
2017-05-17 14:45:31 +03:00
Aliaksandr Valialkin
9ffce8c687
client: properly extract tls ServerName from address without port
2017-04-26 17:57:12 +03:00
Rik van der Heijden
4b9376847d
Remove iris from README, latest v6 removes fasthttp support
2017-04-26 10:02:45 +02:00
Aliaksandr Valialkin
8b2cc86299
fasthttputil: added TLS benchmarks for ECDSA certificates
...
Handshakes with ECDSA certificates are optimized much better
comparing to RSA certificates - see https://github.com/golang/go/issues/20058 .
2017-04-24 14:16:32 +03:00
Aliaksandr Valialkin
8d2055d00a
fasthttputil: added TLS benchmarks for handshakes with elliptic curves
2017-04-20 19:05:57 +03:00
Aliaksandr Valialkin
2c5a87147a
fasthttputil: added BenchmarkTLSHandshakeWithoutClientSessionCache
2017-04-20 12:31:46 +03:00
Aliaksandr Valialkin
fc109d6887
Added a benchmark for RequestCtx.Redirect
2017-02-22 18:45:09 +02:00
Perelandric
3580c93d02
Make SetMethod slice to zero before appending ( #234 )
...
SetMethod appended directly to the `h.method` slice without setting its
length to zero, so multiple calls would create an unexpected value.
2017-02-22 09:48:29 +02:00
Aliaksandr Valialkin
de05aa4747
travis: test with go1.8
2017-02-20 18:59:34 +02:00
Aliaksandr Valialkin
f06438ae94
doc: mention that RequestCtx.ConnRequestNum() returns connection request numbers starting from 1
2017-02-20 16:00:55 +02:00