From 074355a0d96d204d92307a4066c231cb89b2d8bf Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sun, 10 Nov 2013 19:22:13 +0100 Subject: [db] call fontloader.close() for some minor gain --- luaotfload-database.lua | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'luaotfload-database.lua') diff --git a/luaotfload-database.lua b/luaotfload-database.lua index 5198b16..0b9f1f8 100644 --- a/luaotfload-database.lua +++ b/luaotfload-database.lua @@ -6,10 +6,35 @@ if not modules then modules = { } end modules ['luaotfload-database'] = { license = "GNU GPL v2" } ---- TODO: if the specification is an absolute filename with a font not in the ---- database, add the font to the database and load it. There is a small ---- difficulty with the filenames of the TEXMF tree that are referenced as ---- relative paths... +--[[doc-- + + Some statistics: + + a) TL 2012, mkluatexfontdb --force + b) v2.4, luaotfload-tool --update --force + c) v2.4, luaotfload-tool --update --force --formats=+afm,pfa,pfb + d) Context, mtxrun --script fonts --reload --force + + (Keep in mind that Context does index fewer fonts since it + considers only the contents of the minimals tree, not the + tex live one!) + + time (m:s) peak VmSize (B) + a 1:19 386 018 + b 0:37 715 797 + c 2:27 1 017 674 + d 0:44 1 082 313 + + Most of the increase in memory consumption from version 1.x to 2.2+ + can be attributed to the move from single-pass to a multi-pass + approach to building the index: Information is first gathered from + all reachable fonts and only afterwards processed, classified and + discarded. Also, there is a good deal of additional stuff kept in + the database now: two extra tables for file names and font families + have been added, making font lookups more efficient while improving + maintainability of the code. + +--doc]]-- local lpeg = require "lpeg" @@ -1481,7 +1506,7 @@ ot_fullinfo = function (filename, english_names, info) - return { + local res = { file = { base = basename, full = filename, subfont = subfont, @@ -1491,6 +1516,10 @@ ot_fullinfo = function (filename, style = style, version = metadata.version, } + --- Closing the file manually is a tad faster and more memory + --- efficient than having it closed by the gc + fontloaderclose (metadata) + return res end --[[doc-- -- cgit v1.2.3