V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  winterssy  ›  全部回复第 8 页 / 共 10 页
回复总数  196
1  2  3  4  5  6  7  8  9  10  
2019-11-03 12:36:48 +08:00
回复了 winterssy 创建的主题 Python Python 版 mxget 发布~
@jiezhi #12 这个是可以的,我会写一个独立的脚本(不会并入主体项目)来解决这个问题,写好之后再 @你
2019-11-03 12:03:29 +08:00
回复了 winterssy 创建的主题 Python Python 版 mxget 发布~
@jiezhi #10 你说的这个扫描是指返回变灰的歌曲列表吗?
2019-11-03 11:47:27 +08:00
回复了 winterssy 创建的主题 Python Python 版 mxget 发布~
@vicnicLight007 #7 能帮助你从各大音乐平台快速搜索和下载歌曲
2019-11-03 04:18:23 +08:00
回复了 winterssy 创建的主题 Python Python 版 mxget 发布~
@locoz 论单次请求的话,Go net/http 比 aiohttp 快,但为了聚合数据 mxget 经常要发起大量的并发请求,Go 的方案是采用 goroutines+channel,而 aiohttp 则是异步的,这种情况下的性能表现确实优于 net/http
2019-11-03 00:15:58 +08:00
回复了 winterssy 创建的主题 Python Python 版 mxget 发布~
@uhian #2 看上去是你本地环境缺少某些根证书
2019-10-22 07:37:53 +08:00
回复了 winterssy 创建的主题 分享创造 mxget——优雅的音乐下载体验
@kawei no
2019-10-21 17:30:00 +08:00
回复了 winterssy 创建的主题 分享创造 mxget——优雅的音乐下载体验
@missdeer #5 虾米基本没戏,API 太难搞,很容易触发滑块验证。如果你找到可用的 API,请提交 issue
2019-10-20 18:52:36 +08:00
回复了 winterssy 创建的主题 分享创造 mxget——优雅的音乐下载体验
@artandlol #1 不能
2019-10-15 14:22:44 +08:00
回复了 winterssy 创建的主题 分享创造 只须一步,将你喜欢的音乐下载到本地
@wssy921 #23 请到 github 按照模板提交 issue。
2019-10-09 17:24:51 +08:00
回复了 winterssy 创建的主题 分享创造 只须一步,将你喜欢的音乐下载到本地
@reid2017 #4 这个不考虑,不然分分钟被查水表,有该需求的话请支持正版
2019-10-09 17:23:15 +08:00
回复了 winterssy 创建的主题 分享创造 只须一步,将你喜欢的音乐下载到本地
@xiaoyu03 #5 这个主要是因为最初开发时使用邮箱登录请求头的设置跟其它 api 有冲突,所以取消了此方式
2019-10-02 17:44:44 +08:00
回复了 winterssy 创建的主题 分享创造 sreq - 一个简单,易用和线程安全的 Golang 网络请求库
@GoLand 那叫协程安全,goroutine 安全?理解意思就行了...
2019-09-30 01:40:25 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@deletelazy 这根本没有可比性,net/http 在底层就实现了线程安全。而 sreq 是对 http api 的上层封装,它的设计决定了要加锁。且目前大多基于 net/http 封装的 request 库要么不支持并发安全,要么每次请求前克隆一份配置,要么加锁。结合具体场景分析,别章口就来😓
2019-09-30 00:57:04 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@deletelazy 提出问题前请先仔细阅读 api 文档
2019-09-30 00:56:08 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@deletelazy 并发不加锁如何解决数据竞争问题?而且并发你不需要 New,会复用 http client,这里提到 New 只是针对你贴出的代码而言
2019-09-29 23:35:45 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@deletelazy #22 因为是链式操作,自动加锁就要每一步都加锁,这样不是很好,所以改成了手动加锁。而且你的测试例子明显就有问题,Get("123"),Post("456") 无论你创建多少个都是共享同一个 client——std,如果你真要这么玩,先 New()一个。
func main() {
cs := make(chan *Client, 100)
for i := 0; i < 10; i++ {
go func(i int) {
if i%2 == 1 {
cs <- New().Get("123")
} else {
cs <- New().Post("456")
}
}(i)
}

for {
select {
case c := <-cs:
fmt.Println(c.method, c.url)
}
}
}
2019-09-29 21:37:42 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@fengkx #15 不对,你的测试结果也表示 decoder 更快吧。decoder 比 unmarshal 更快,但貌似需要更多的内存分配次数跟空间
2019-09-29 21:22:54 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@fengkx #15 我在 windows 上测了一下,结果反而跟你预期的一样,decoder 性能更好。这可能跟测试环境有关,网上查了一下,选择 decoder 更为合适,后续会使用 decoder 替换 unmarshal,感谢反馈。

stackoverflow 上类似的提问: https://stackoverflow.com/questions/21197239/decoding-json-using-json-unmarshal-vs-json-newdecoder-decode

附上测试结果:
## unmarshal
goos: windows
goarch: amd64
pkg: github.com/winterssy/sreq
BenchmarkResponse_JSON-4 7664007 480 ns/op 544 B/op 2 allocs/op
PASS
ok github.com/winterssy/sreq 4.558s

## decoder
goos: windows
goarch: amd64
pkg: github.com/winterssy/sreq
BenchmarkResponse_JSON-4 8721448 409 ns/op 896 B/op 3 allocs/op
PASS
ok github.com/winterssy/sreq 4.386s
2019-09-29 20:06:26 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@zealic #11 原项目名叫 reqwest 有 7 star 1 fork,后面遇到反馈说碰瓷 Rust 同名项目,删库更名重建了。star 不是我看重的,未曾想跟其它项目对比 /竞争,纯粹分享自己的成果而已。
2019-09-29 19:16:05 +08:00
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
更新:为避免跟 Rust reqwest 引起不必要的误解,项目更名为 sreq。新仓库地址: https://github.com/winterssy/sreq
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2754 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 12:45 · PVG 20:45 · LAX 05:45 · JFK 08:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.