【发布时间】:2014-07-29 23:26:36
【问题描述】:
我正在尝试找出使用 Lua 从文件中解析数据的最有效方法。例如,假设我有一个文件(example.txt),其中包含以下内容:
0, Data
74, Instance
4294967295, User
255, Time
如果我只想要“,”之前的数字,我可以想出几种获取信息的方法。我首先使用f = io.open(example.txt) 获取数据,然后使用for 循环解析f 的每一行。这引出了我的问题的核心。最有效的方法是什么?
在 for 循环中,我可以使用这些方法中的任何一种来获取逗号前的 #:
line.find(regex)
line:gmatch(regex)
line:match(regex)
或 Lua 的 split function
有没有人对这些/其他方法进行速度测试,他们可以指出它们是快速解析的方法?如果您能说出解析小文件和大文件的速度,则可以加分。
【问题讨论】:
-
请不要混淆Lua和LUA。两种语言是不同的。 “Lua”是一个名字,在葡萄牙语中的意思是“月亮”。请不要把它写成“LUA”,这样既丑陋又令人困惑,因为那样它就变成了different meanings的缩写,代表不同的人。
-
我怀疑所有这些都会获得相似的性能(在这种情况下,只需使用对您来说更简单/更清晰的东西)。文件 IO 和从硬盘读取的成本可能会使您对这些行执行的简单 O(N) 处理相形见绌。
标签: performance optimization lua