Chuyu-Team / YY-Thunks

Fix DecodePointer, EncodePointer,RegDeleteKeyEx etc. APIs not found in Windows XP RTM.
MIT License
496 stars 102 forks source link

YY-Thunks初始化性能优化 #57

Closed mingkuang-Chuyu closed 1 year ago

mingkuang-Chuyu commented 1 year ago

1. 背景

之前为了解决Bug #7, 特意在Init时加载了所有的try_get_, _FUNCTION。这导致某些场景,这可能调用数百次,拖慢速度。

2. 优化

理论上,所有Load dll工作可能再复杂的场景死锁。但是我们其实只需要调用 try_get_module_, _MODULEtry_get_, _FUNCTION中只是多了GetProcAddress,但是GetProcAddress并不会引入锁。

所以改成 try_get_module_, _MODULE 这可以减少无意义的GetProcAddress次数。

3. 潜在风险

理论上没有风险。但是对初始化影响较大,不确定是否产生其他意外情况。

mingkuang-Chuyu commented 1 year ago

https://github.com/Chuyu-Team/YY-Thunks/releases/tag/v1.0.8-Beta4