Skip to content
/ utils Public

⚡ A collection of common functions but with better performance, less allocations and less dependencies created for Fiber.

License

Notifications You must be signed in to change notification settings

gofiber/utils

Repository files navigation

Fiber Utils

Release Test Codecov Linter Discord

A collection of common functions but with better performance, less allocations and less dependencies created forFiber.

Benchmarks

Environment: goos: darwin goarch: amd64 pkg: github /gofiber/utils cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

// go test -benchmem -run=^$ -bench=Benchmark_ -count=2

Benchmark_ToLowerBytes/fiber-122971583136.44ns/op0B/op0allocs/op
Benchmark_ToLowerBytes/fiber-123331647936.28ns/op0B/op0allocs/op
Benchmark_ToLowerBytes/default-121189442796.98ns/op80B/op1allocs/op
Benchmark_ToLowerBytes/default-121221705097.43ns/op80B/op1allocs/op

Benchmark_ToUpperBytes/fiber-122204216246.92ns/op0B/op0allocs/op
Benchmark_ToUpperBytes/fiber-122585968046.43ns/op0B/op0allocs/op
Benchmark_ToUpperBytes/default-1210015346117.2ns/op80B/op1allocs/op
Benchmark_ToUpperBytes/default-1210185375117.8ns/op80B/op1allocs/op

Benchmark_TrimRight/fiber-125223997952.138ns/op0B/op0allocs/op
Benchmark_TrimRight/fiber-125782453262.084ns/op0B/op0allocs/op
Benchmark_TrimRight/default-123451553003.380ns/op0B/op0allocs/op
Benchmark_TrimRight/default-123669728503.328ns/op0B/op0allocs/op

Benchmark_TrimRightBytes/fiber-125864712082.099ns/op0B/op0allocs/op
Benchmark_TrimRightBytes/fiber-125760550692.087ns/op0B/op0allocs/op
Benchmark_TrimRightBytes/default-123488492923.316ns/op0B/op0allocs/op
Benchmark_TrimRightBytes/default-123599044453.384ns/op0B/op0allocs/op

Benchmark_TrimLeft/fiber-125780445442.122ns/op0B/op0allocs/op
Benchmark_TrimLeft/fiber-125852904332.074ns/op0B/op0allocs/op
Benchmark_TrimLeft/default-123519068883.667ns/op0B/op0allocs/op
Benchmark_TrimLeft/default-123308526663.448ns/op0B/op0allocs/op

Benchmark_TrimLeftBytes/fiber-125454001092.239ns/op0B/op0allocs/op
Benchmark_TrimLeftBytes/fiber-125448000612.270ns/op0B/op0allocs/op
Benchmark_TrimLeftBytes/default-123297490063.521ns/op0B/op0allocs/op
Benchmark_TrimLeftBytes/default-123441995603.452ns/op0B/op0allocs/op

Benchmark_Trim/fiber-122806922324.128ns/op0B/op0allocs/op
Benchmark_Trim/fiber-122970700833.961ns/op0B/op0allocs/op
Benchmark_Trim/default-122325229525.163ns/op0B/op0allocs/op
Benchmark_Trim/default-122306590575.172ns/op0B/op0allocs/op
Benchmark_Trim/default.trimspace-122273289675.245ns/op0B/op0allocs/op
Benchmark_Trim/default.trimspace-122273407755.253ns/op0B/op0allocs/op

Benchmark_TrimBytes/fiber-122756120904.280ns/op0B/op0allocs/op
Benchmark_TrimBytes/fiber-122848921684.302ns/op0B/op0allocs/op
Benchmark_TrimBytes/default-122240215505.163ns/op0B/op0allocs/op
Benchmark_TrimBytes/default-122396892824.922ns/op0B/op0allocs/op
Benchmark_TrimBytes/default.trimspace-122168093005.514ns/op0B/op0allocs/op
Benchmark_TrimBytes/default.trimspace-122181777345.603ns/op0B/op0allocs/op

Benchmark_EqualFoldBytes/fiber-122294484947.14ns/op0B/op0allocs/op
Benchmark_EqualFoldBytes/fiber-122600634246.82ns/op0B/op0allocs/op
Benchmark_EqualFoldBytes/default-125222006222.5ns/op0B/op0allocs/op
Benchmark_EqualFoldBytes/default-125349398223.2ns/op0B/op0allocs/op

Benchmark_EqualFold/fiber-122476103748.63ns/op0B/op0allocs/op
Benchmark_EqualFold/fiber-122415907348.63ns/op0B/op0allocs/op
Benchmark_EqualFold/default-126322188191.5ns/op0B/op0allocs/op
Benchmark_EqualFold/default-126319070193.5ns/op0B/op0allocs/op

Benchmark_UUID/fiber-122206148249.13ns/op48B/op1allocs/op
Benchmark_UUID/fiber-122412319848.40ns/op48B/op1allocs/op
Benchmark_UUID/default-123581961336.9ns/op168B/op6allocs/op
Benchmark_UUID/default-123465946344.8ns/op168B/op6allocs/op

Benchmark_ConvertToBytes/fiber-125339281923.19ns/op0B/op0allocs/op
Benchmark_ConvertToBytes/fiber-125111722523.32ns/op0B/op0allocs/op

Benchmark_UnsafeString/unsafe-1210000000000.5672ns/op0B/op0allocs/op
Benchmark_UnsafeString/unsafe-1210000000000.5683ns/op0B/op0allocs/op
Benchmark_UnsafeString/default-126400089718.45ns/op16B/op1allocs/op
Benchmark_UnsafeString/default-126413890918.13ns/op16B/op1allocs/op

Benchmark_UnsafeBytes/unsafe-124747770962.539ns/op0B/op0allocs/op
Benchmark_UnsafeBytes/unsafe-124693407812.535ns/op0B/op0allocs/op
Benchmark_UnsafeBytes/default-125312565622.15ns/op16B/op1allocs/op
Benchmark_UnsafeBytes/default-125261504822.33ns/op16B/op1allocs/op

Benchmark_ToString-122298143051.72ns/op40B/op2allocs/op
Benchmark_ToString-122295647652.93ns/op40B/op2allocs/op

Benchmark_GetMIME/fiber-121578262274.99ns/op0B/op0allocs/op
Benchmark_GetMIME/fiber-121399237593.13ns/op0B/op0allocs/op
Benchmark_GetMIME/default-126825952147.0ns/op0B/op0allocs/op
Benchmark_GetMIME/default-129158227132.5ns/op0B/op0allocs/op

ParseVendorSpecificContentType
Benchmark_Parse.../vendorContentType-122133466350.24ns/op16B/op1allocs/op
Benchmark_Parse.../vendorContentType-122312180851.20ns/op16B/op1allocs/op
Benchmark_Parse.../defaultContentType-121544239096.772ns/op0B/op0allocs/op
Benchmark_Parse.../defaultContentType-121832851176.662ns/op0B/op0allocs/op

Benchmark_StatusMessage/fiber-1210000000000.9796ns/op0B/op0allocs/op
Benchmark_StatusMessage/fiber-1210000000000.9706ns/op0B/op0allocs/op
Benchmark_StatusMessage/default-123802605622.989ns/op0B/op0allocs/op
Benchmark_StatusMessage/default-124036396423.124ns/op0B/op0allocs/op

Benchmark_IsIPv4/fiber-125357621421.07ns/op0B/op0allocs/op
Benchmark_IsIPv4/fiber-126267290722.04ns/op0B/op0allocs/op
Benchmark_IsIPv4/default-122120461362.23ns/op16B/op1allocs/op
Benchmark_IsIPv4/default-122139984756.61ns/op16B/op1allocs/op

Benchmark_IsIPv6/fiber-121675499572.46ns/op0B/op0allocs/op
Benchmark_IsIPv6/fiber-121708089774.31ns/op0B/op0allocs/op
Benchmark_IsIPv6/default-128160195124.5ns/op16B/op1allocs/op
Benchmark_IsIPv6/default-129415326119.8ns/op16B/op1allocs/op

Benchmark_ToUpper/fiber-121317515481.67ns/op80B/op1allocs/op
Benchmark_ToUpper/fiber-121428553377.27ns/op80B/op1allocs/op
Benchmark_ToUpper/default-125332206231.8ns/op80B/op1allocs/op
Benchmark_ToUpper/default-125364650236.0ns/op80B/op1allocs/op

Benchmark_ToLower/fiber-121299640980.24ns/op80B/op1allocs/op
Benchmark_ToLower/fiber-121653953669.27ns/op80B/op1allocs/op
Benchmark_ToLower/default-125132185222.5ns/op80B/op1allocs/op
Benchmark_ToLower/default-125158561225.3ns/op80B/op1allocs/op

Benchmark_CalculateTimestamp/fiber-1210000000000.2634ns/op0B/op0allocs/op
Benchmark_CalculateTimestamp/fiber-1210000000000.2935ns/op0B/op0allocs/op
Benchmark_CalculateTimestamp/default-121574057673.79ns/op0B/op0allocs/op
Benchmark_CalculateTimestamp/default-121578903671.12ns/op0B/op0allocs/op

See all the benchmarks underhttps://gofiber.github.io/utils/