V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ybilly  ›  全部回复第 1 页 / 共 1 页
回复总数  8
@mcfog 我看了下,vtprotobuf 生成出来的代码和 gogoprotobuf 生成出来的代码一样的,而 fastproto 也是参考的 gogoprotobuf ,不过生成出来的代码重新成引用 google 的 protowire 这个包来读写数据。所以两者在性能上应该是一个量级的,不会有太大偏差
2. 两者有个区别就是 fastproto 支持自己的 message 里面引用其它人只用标准 proto 生成的 message ,比如 google 标准库里面的 Any 类型和 timestamp 类型。vtprotobuf 试了下不行。
3. Marshal 函数,gogoprotobuf 原来的实现是从后面往前写,fastproto 为了使用 protowire 这个库里面的标准函数,所以改成从前往后写。
@mcfog 先去瞄一眼
@millken 现在这个工具只是在 google 自己的.pb.go 文件之外,额外生成 marshal 、marshalto 、unmarshal 几个方法。结构的定义还是依赖于 google 的.pb.go 文件。
2022-02-17 17:02:40 +08:00
回复了 xtx 创建的主题 汽车 25 万以内,新能源 suv 有什么推荐么?
年底上海狮
2019-01-16 11:19:22 +08:00
回复了 luxurioust 创建的主题 Go 编程语言 Go 语言 Excel 文档类库 excelize 发布 1.4.1 版本
@luxurioust 360 是个好库,曾经 golang 上只有 tealeg 的库,但是他的库对于读取文本以外的功能支持不多。现在多了 360,是个好事。最终可以根据项目需求来选择。
2019-01-15 20:46:24 +08:00
回复了 luxurioust 创建的主题 Go 编程语言 Go 语言 Excel 文档类库 excelize 发布 1.4.1 版本
最近刚使用这个库做了个通用的库

https://github.com/billyplus/luatable

以前我用过一个 golang 的库,是 tealeg 的,后来看到他在项目说明里面推荐 360 的库,说 360 的库功能更全面,所以这次我先尝试了一下 360 的库。结果不是很理想,读取数据明显比 tealeg 的慢,应该是 xml 解析没有优化,但是对于我的这种导表工具来说,读取速度比功能更有意义。

我用这两个库做了个对比。

总运行时间:4.97s
其中:
github.com/360EntSecGroup-Skylar/excelize.(*File).GetRows (67.00%, 3.33s)

```
Flat Flat% Sum% Cum Cum% Name Inlined?
0 0.00% 0.00% 3.49s 70.22% github.com/spf13/cobra.(*Command).Execute
0 0.00% 0.00% 3.49s 70.22% github.com/spf13/cobra.(*Command).ExecuteC
0 0.00% 0.00% 3.49s 70.22% main.main
0 0.00% 0.00% 3.49s 70.22% runtime.main
0 0.00% 0.00% 3.48s 70.02% github.com/spf13/cobra.(*Command).execute
0 0.00% 0.00% 3.48s 70.02% main.(*generator).GenConfig
0 0.00% 0.00% 3.48s 70.02% main.(*generator).GenConfig.func1
0 0.00% 0.00% 3.48s 70.02% main.(*generator).GenConfig.func1.1
0 0.00% 0.00% 3.48s 70.02% main.glob..func1
0 0.00% 0.00% 3.48s 70.02% path/filepath.Walk
0 0.00% 0.00% 3.48s 70.02% path/filepath.walk
0 0.00% 0.00% 3.46s 69.62% main.(*generator).iterateXlsx
0 0.00% 0.00% 3.46s 69.62% main.(*generator).sheetsFromExcel360
0 0.00% 0.00% 3.33s 67.00% github.com/360EntSecGroup-Skylar/excelize.(*File).GetRows
0 0.00% 0.00% 2.70s 54.33% encoding/xml.(*Decoder).DecodeElement
0.18s 3.62% 3.62% 2.70s 54.33% encoding/xml.(*Decoder).unmarshal
```

后来试着换了一个库,这个库功能更少,但是使用时候发现读表效率更高,换库只是调整了读表的部分。
github.com/tealeg/xlsx

总运行时间:2.34s
top
```
Flat Flat% Sum% Cum Cum% Name Inlined?
0 0.00% 0.00% 1.30s 55.56% github.com/tealeg/xlsx.readSheetFromFile
0 0.00% 0.00% 1.30s 55.56% github.com/tealeg/xlsx.readSheetsFromZipFile.func1
0 0.00% 0.00% 1.27s 54.27% encoding/xml.(*Decoder).Decode
0 0.00% 0.00% 1.27s 54.27% encoding/xml.(*Decoder).DecodeElement
0.04s 1.71% 1.71% 1.27s 54.27% encoding/xml.(*Decoder).unmarshal
0.03s 1.28% 2.99% 1.14s 48.72% encoding/xml.(*Decoder).unmarshalPath
0 0.00% 2.99% 1.13s 48.29% github.com/tealeg/xlsx.getWorksheetFromSheet
0.01s 0.43% 3.42% 0.76s 32.48% encoding/xml.(*Decoder).Token
0.04s 1.71% 5.13% 0.69s 29.49% encoding/xml.(*Decoder).rawToken
0 0.00% 5.13% 0.42s 17.95% runtime.mstart
0 0.00% 5.13% 0.42s 17.95% runtime.systemstack
```

两者对比,读取文件的操作差别还是挺大的,如果文件更大的话,差距就会更明显。
2019-01-15 18:42:48 +08:00
回复了 yuikns 创建的主题 Google 这种搜索排序可以如何实现?
这个排序应该是巧合,搜小说的时候,他就不会给你排章节。
2019-01-15 14:39:32 +08:00
回复了 ryan1991 创建的主题 微信 小程序跟苹果之间的关系很微妙啊,有未来吗?
PWA 才是最终解决方案,但是苹果也不积极,安卓也只是要用他自己的 chrome 浏览器能才打开。双方都怕自己的流量入口被其它人抢占,所以比较谨慎。小程序想干 PWA 的事情,连 PWA 他们都不放开,哪轮得到小程序,如果他们开放到能接受小程序,他们就会开放到把 PWA 标准和功能放开,这样,又回到浏览器为入口的时代。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5470 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 609ms · UTC 09:04 · PVG 17:04 · LAX 02:04 · JFK 05:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.