mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #16564 from glacambre/improve_test_harness_perf
test(helpers): optimize read_file_list
This commit is contained in:
commit
27648ee218
@ -741,9 +741,20 @@ function module.read_file_list(filename, start)
|
|||||||
if not file then
|
if not file then
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- There is no need to read more than the last 2MB of the log file, so seek
|
||||||
|
-- to that.
|
||||||
|
local file_size = file:seek("end")
|
||||||
|
local offset = file_size - 2000000
|
||||||
|
if offset < 0 then
|
||||||
|
offset = 0
|
||||||
|
end
|
||||||
|
file:seek("set", offset)
|
||||||
|
|
||||||
local lines = {}
|
local lines = {}
|
||||||
local i = 1
|
local i = 1
|
||||||
for line in file:lines() do
|
local line = file:read("*l")
|
||||||
|
while line ~= nil do
|
||||||
if i >= start then
|
if i >= start then
|
||||||
table.insert(lines, line)
|
table.insert(lines, line)
|
||||||
if #lines > maxlines then
|
if #lines > maxlines then
|
||||||
@ -751,6 +762,7 @@ function module.read_file_list(filename, start)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
line = file:read("*l")
|
||||||
end
|
end
|
||||||
file:close()
|
file:close()
|
||||||
return lines
|
return lines
|
||||||
|
Loading…
Reference in New Issue
Block a user