module
Version:
v1.0.1
Opens a new window with list of versions in this module.
Published: Oct 14, 2019
License: GPL-3.0
Opens a new window with license information.
README
¶

go-extend 收集一些常用的操作函数,辅助更快的完成开发工作,并减少重复代码。
它收集各种杂项函数,并进行归类,方便使用者查找,它可以大幅度提升开发效率和程序运行性能。它以保证性能为最大前提,提供有效的方法。
针对一些标准库中的函数或者库进行一些修改,使其性能大幅度提升,但它并不用来替换标准库函数,这些函数往往会在一些场景下有效,但有些函数可以用来替换标准库函数,它们保持一致的功能,且相当安全。
一些包或者函数使用示例及分析可以在我的 博客(https://blog.thinkeridea.com) 中找到。
规范:
- 与标准库包名一致的使用
ex 前缀, 避免与标准库包冲突。
- 包目录下
doc.go 作为包说明文档。
标准库函数改进列表
用来替换标准库的函数,它们和标准库函数功能保持一致,并拥有更好的性能:
用该改善标准库的函数,它们基本和标准库功能一致,但是它们都拥有更好的性能:
很有用的方法
非常有用的包
- pool 一个
buffer 的公共缓存池,有一些固定的长度可选,可以有效减少程序使用的 sync.Pool 数量。
- exatomic 一个浮点数的原子包, 支持
float32 和 float64 类型,鉴于浮点数的精度可能会有些意外,详细查看包文档或浮点数算法。
- datalog 用于辅助拼接类 csv 格式化数据日志的组件。
标准库函数改进性能测试:
-
exstrings
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
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
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。
Directories
¶
Package datalog 用于辅助拼接类 csv 格式化数据日志的组件。
|
Package datalog 用于辅助拼接类 csv 格式化数据日志的组件。 |
Package exatomic 实现了 float32 与 float64 原子操作, 我在历史项目中实时在线统计一些价格,在多线程时往往非常有用, 简化程序逻辑,并提升程序性能。
|
Package exatomic 实现了 float32 与 float64 原子操作, 我在历史项目中实时在线统计一些价格,在多线程时往往非常有用, 简化程序逻辑,并提升程序性能。 |
Package exbytes 收集常规的 []byte 操作,作为 go 标准库 bytes 的扩展。
|
Package exbytes 收集常规的 []byte 操作,作为 go 标准库 bytes 的扩展。 |
|
|
Package exnet 收集一些网络模块函数 |
exhttp/expprof
Package expprof 这是从 net/http/pprof 包复制过来的,做了一些调整 我希望核心的逻辑不变,保持和标准库一致的功能,会调整使用的接口,使之易于控制。
|
Package expprof 这是从 net/http/pprof 包复制过来的,做了一些调整 我希望核心的逻辑不变,保持和标准库一致的功能,会调整使用的接口,使之易于控制。 |
Package exstrings 收集常规的 string 操作,作为 go 标准库 strings 的扩展。
|
Package exstrings 收集常规的 string 操作,作为 go 标准库 strings 的扩展。 |
Package helper 收集一些可以辅助我们快速编程的方法,让我们极快的编写出自己的应用程序。
|
Package helper 收集一些可以辅助我们快速编程的方法,让我们极快的编写出自己的应用程序。 |
Package pool 创建一些常用的 pool, 底层依托 sync.pool 在项目开发中会大量使用 sync.Pool, 有很多 pool 是可以共享的,最常见的就是 bytes.Buffer。
|
Package pool 创建一些常用的 pool, 底层依托 sync.pool 在项目开发中会大量使用 sync.Pool, 有很多 pool 是可以共享的,最常见的就是 bytes.Buffer。 |
Click to show internal directories.
Click to hide internal directories.