Closed cxxzhang closed 3 months ago
感谢支持,我们已经定位到原因。这些内存占用来自于VC-LTL内部的全局变量。历史以来,因为Windows XP不完整支持tls 所以某些地方使用了超大全局变量模拟Tls的行为。 正因为这些全局变量导致了这些内存占用。
使用XP作为编译目标编译时受到影响,可能所有VC-LTL5均受到影响。但是并非所有情况都受到影响,理论上只有依赖上___lc_locale_name_func才受到影响。
切换到tls实现,因为现在YY-thunks已经可以为XP提供完成的Tls支持。等耐心等待。
代码如下
include
include
int main() { std::cout << "Hello World!\n"; while (true) { Sleep(1000); } }
当使用了VC-LTL5和不使用VCL-LTL5时, 内存占用相差170倍.