黑客拥有<<__Memoize>>
属性可轻松缓存方法结果。在Hack语言中记忆属性 - 缓存超时
如何使用它缓存某些数据库或API请求的结果有限的时间量?
比方说,我的代码非常频繁,需要从数据库的一些信息:
public function loadEmployees(
string $company_name,
): ImmSet<string> {
return $this->db->sqlQuery(...);
}
为了提高性能,我想缓存结果一分钟。
如果数据发生变化,我的程序会在一分钟内看到它。结果陈旧了一分钟,我很好。
检查了official docs。
然后Memoize是完美的,谢谢!我认为它在虚拟机的整个生命周期中都是缓存的。这可能会使用大量内存,但文档说如果需要,缓存可以自动清除。 –
文档现在说“__Memoize属性允许函数或方法在给定请求的持续时间内缓存它们的结果。” –