-
Notifications
You must be signed in to change notification settings - Fork 230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
use table to accelerate bsr calculate #34
Comments
性能测试的代码
|
用于对比的代码
|
我写的代码
|
性能测试结果对比
|
证明结果无误的例子
/usr/local/go/bin/go tool test2json -t /private/var/folders/41/3lxydnv150369kfnhqjbr2j40000gn/T/___TestBsr_in_code_byted_org_middleware_mcache.test -test.v -test.paniconexit0 -test.run ^\QTestBsr\E$ |
要不提个 pr,顺便,Len32 和 Len64 我觉得可以不用暴露出去,改为小写? |
Len32 和 Len64 合并成单个函数是不是就可以呀, |
个人看法,bits.Len32 和 bits.Len64 这些标准库的函数没必要复制一份? |
是的。 |
能贴一下你发现的是哪个库会用到吗? |
sdk里的一个库
bits.Length
… 2021年6月24日 下午5:18,Jonathan Lu ***@***.***> 写道:
并且针对64位操作系统和32位操作系统有不同的优化。
能贴一下你发现的是哪个库会用到吗?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#34 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AMR6Z4PDN75SWKWEFXAD6J3TULZ4ZANCNFSM45DX3TZQ>.
|
go sdk里的一个库bits.length发自我的荣耀手机-------- 原始邮件 --------发件人: Jonathan Lu ***@***.***>日期: 2021年6月24日周四 傍晚5:18收件人: bytedance/gopkg ***@***.***>抄送: 杨杰 ***@***.***>, Author ***@***.***>主 题: Re: [bytedance/gopkg] use table to accelerate bsr calculate (#34)
并且针对64位操作系统和32位操作系统有不同的优化。
能贴一下你发现的是哪个库会用到吗?
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
|
在计算bsr的时候,某些操作系统上使用一种for循环的方式计算,时间复杂度是O(n),n是这个数第从小到大最大的为1的位。
经过golang sdk库math/bits/bits.go/Len函数的启发,我想出了一种算法,具有O(1)的复杂度, 并且计算时间稳定。
并且针对64位操作系统和32位操作系统有不同的优化。
几乎减少了百分之九十的计算时间。
The text was updated successfully, but these errors were encountered: