使用本地 `foo = require "foo"` 比使用 `foo = require "foo"` 更快吗

Is it faster to use local `foo = require "foo"` rather than `foo = require "foo"`

如果 foo 是本地的,我的程序是否可以更快地访问存储在 foo 中的 functions/variables? 如果我在多个文件中使用 local foo = require "foo",foo.lua 会被加载多次吗?

是的。访问本地值会减少一次哈希查找,并且速度会更快。它是否会被注意到取决于你如何使用它 - 即如果访问此 table 的数量相对于你的程序所做的任何其他事情来说相对较高。

require 只会加载任何给定的模块一次。正如 docs 所说:

The function starts by looking into the package.loaded table to determine whether modname is already loaded. If it is, then require returns the value stored at package.loaded[modname].