go-extend

module
v1.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2021 License: MIT

README

go-extend

GoDoc Actions Status codecov Go Report Card GitHub release

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

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

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

安装

$ go get  github.com/thinkeridea/go-extend/...

规范:

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

性能测试

包中一些函数会进行性能测试,包括每次修订的性能对比,它们一般位于各自包下面的 benchmark 目录下,性能测试结果可以在 benchmark.md 快速浏览。

标准库函数改进列表

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

  • exstrings.Join 该方法是对标准库 strings.Join 修改,配合 unsafe 包能有效减少内存分配
  • exstrings.Repeat 该方法是对标准库 strings.Repeat 修改,对于创建大字符串能有效减少内存分配
  • exstrings.Replace 替换字符串 该方法是对标准库 strings.Replace 修改,配合 unsafe 包能有效减少内存分配

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

许可

go-extend 根据 MIT License 许可证授权,有关完整许可证文本,请参阅 LICENSE

Directories

Path Synopsis
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 exmath 对 math 的扩展
Package exmath 对 math 的扩展
Package exnet 收集一些网络模块函数
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 exsync 对 sync 的扩展
Package exsync 对 sync 的扩展
Package extime 收集时间操作或计算的方法,以及有关不同国家地域的特殊日期方法。
Package extime 收集时间操作或计算的方法,以及有关不同国家地域的特殊日期方法。
exunicode
exutf8
Package exutf8 用于改善标准库 utf8 包,提升操作多字节字符的性能及便利性,避免转换 []rune 类型。
Package exutf8 用于改善标准库 utf8 包,提升操作多字节字符的性能及便利性,避免转换 []rune 类型。
Package helper 收集一些可以辅助我们快速编程的方法,让我们极快的编写出自己的应用程序。
Package helper 收集一些可以辅助我们快速编程的方法,让我们极快的编写出自己的应用程序。
Package pool 创建一些常用的 pool, 底层依托 sync.pool 在项目开发中会大量使用 sync.Pool, 有很多 pool 是可以共享的,最常见的就是 bytes.Buffer。
Package pool 创建一些常用的 pool, 底层依托 sync.pool 在项目开发中会大量使用 sync.Pool, 有很多 pool 是可以共享的,最常见的就是 bytes.Buffer。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL