golang 的encoding/binary 模块比python的struct.unpack性能差不少的啊

szqh97 2014-03-24 11:34:26
<control_block>
<header>
<control_block>
<frame>
.....共有15个
<control_block>
<frame>
....
.
.
<control_block>
上面表示的是一个test.data中的二进制文件的格式,其中 control_block 与frame的定义

type control_block struct {
Ser_num uint32
Dna_type uint32
Length uint32
Pad uint32
Ts uint64
}

type frame struct {
ts uint32
pad [36]byte
}

把每个frame的ts都解出来,发现用go的encoding/binary 要比python的struct.unpack慢一倍多,我是用
func Read(r io.Reader, order ByteOrder, data interface{}) error 
这个方法的,有没有其他更好的方法?
...全文
2629 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing8831925 2015-11-04
  • 打赏
  • 举报
回复
飃颻 2014-04-21
  • 打赏
  • 举报
回复
Go语言做为一个新生代的语言,存在的缺陷不会少, 处理XML文件目前看来是个弱项,期待将来有所改进。
沙尘暗影 2014-04-20
  • 打赏
  • 举报
回复
qq空间都支持golang代码了,csdn论坛竟然还不支持
svenwang 2014-03-24
  • 打赏
  • 举报
回复
有两个地方可以调整: 1.自己写个解析方法,encoding/binary用了reflect会比较慢。 2.不要直接用os.File,使用bufio.Reader可以减少i/o次数提高性能。
svenwang 2014-03-24
  • 打赏
  • 举报
回复
如果方便的话,把源代码和测试数据贴出来看看,应该可以做性能分析和优化。

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧