faceair / clash-speedtest

clash speedtest
MIT License
503 stars 47 forks source link

Optimize _down api #16

Closed kosmgco closed 1 year ago

kosmgco commented 1 year ago

use io.CopyN instead of for loop

faceair commented 1 year ago

也行,但 rand 不是并发安全的

kosmgco commented 1 year ago

或者将 rand source init 放到 handler 里面

kosmgco commented 1 year ago

for loop 太慢了,本地只能跑到 100Mb(≈11MB/s),用io.CopyN 可以到 140MB

faceair commented 1 year ago

rand 里面是随机数生成器,效率依旧不会太高,应该自己实现一个恒返回 '0' 序列的 reader

image
faceair commented 1 year ago

构造一个 32k 大小的 buffer,循环地往 writer 里面写就好了 这样可以避免过多系统调用的开销

faceair commented 1 year ago
image

优化了