Skip to content

CrackerCat/go-extend

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDoc Build Status codecov Go Report Card

go-extend 收集一些常用的操作函数,辅助更快的完成开发工作,并减少重复代码。

它收集各种杂项函数,并进行归类,方便使用者查找,它可以大幅度提升开发效率和程序运行性能。它以保证性能为最大前提,提供有效的方法。 针对一些标准库中的函数或者库进行一些修改,使其性能大幅度提升,但它并不用来替换标准库函数,这些函数往往会在一些场景下有效,但有些函数可以用来替换标准库函数,它们保持一致的功能,且相当安全。

一些包或者函数使用示例及分析可以在我的 博客(https://blog.thinkeridea.com) 中找到。

规范:

  • 与标准库包名一致的使用 ex 前缀, 避免与标准库包冲突。
  • 包目录下 doc.go 作为包说明文档。

标准库函数改进列表

用来替换标准库的函数,它们和标准库函数功能保持一致,并拥有更好的性能:

用该改善标准库的函数,它们基本和标准库功能一致,但是它们都拥有更好的性能:

很有用的方法

非常有用的包

  • pool 一个 buffer 的公共缓存池,有一些固定的长度可选,可以有效减少程序使用的 sync.Pool 数量。
  • exatomic 一个浮点数的原子包, 支持 float32float64 类型,鉴于浮点数的精度可能会有些意外,详细查看包文档或浮点数算法。
  • datalog 用于辅助拼接类 csv 格式化数据日志的组件。

标准库函数改进性能测试:

  • exstrings

    • Replace 系列函数测试报告
     goos: darwin
     goarch: amd64
     pkg: github.com/thinkeridea/go-extend/exstrings/benchmark
     BenchmarkReplace-8                  	  500000	      3256 ns/op	     960 B/op	      15 allocs/op
     BenchmarkReplaceToBytes-8           	  500000	      3283 ns/op	    1024 B/op	      16 allocs/op
     BenchmarkUnsafeReplaceToBytes-8     	  500000	      3041 ns/op	     960 B/op	      15 allocs/op
     BenchmarkStandardLibraryReplace-8   	  500000	      3679 ns/op	    1920 B/op	      30 allocs/op
     PASS
     ok  	github.com/thinkeridea/go-extend/exstrings/benchmark	7.769s
    
    • Repeat 性能测试报告
     goos: darwin
     goarch: amd64
     pkg: github.com/thinkeridea/go-extend/exstrings/benchmark
     BenchmarkRepeat-8                  	   50000	     28818 ns/op	  303104 B/op	       1 allocs/op
     BenchmarkRepeatToBytes-8           	   50000	     28104 ns/op	  303104 B/op	       1 allocs/op
     BenchmarkStandardLibraryRepeat-8   	   20000	     51968 ns/op	  606208 B/op	       2 allocs/op
     PASS
     ok  	github.com/thinkeridea/go-extend/exstrings/benchmark	6.200s
    
    • Join 性能测试报告
     goos: darwin
     goarch: amd64
     pkg: github.com/thinkeridea/go-extend/exstrings/benchmark
     BenchmarkJoin-8                  	 5000000	       290 ns/op	      64 B/op	       1 allocs/op
     BenchmarkJoinToBytes-8           	 5000000	       290 ns/op	      64 B/op	       1 allocs/op
     BenchmarkStandardLibraryJoin-8   	 5000000	       315 ns/op	     128 B/op	       2 allocs/op
     PASS
     ok  	github.com/thinkeridea/go-extend/exstrings/benchmark	5.406s
    

许可

go-extend 根据 GNU General Public License v3.0 许可证授权,有关完整许可证文本,请参阅 LICENSE

About

go语言扩展包,收集一些常用的操作函数,辅助更快的完成开发工作,并减少重复代码

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%