今天測(cè)試?yán)?libcurl 庫,
內(nèi)網(wǎng)測(cè)試40M文件文件接收到內(nèi)存,
使用 curl官方例程: https://curl.haxx.se/libcurl/c/getinmemory.html
發(fā)現(xiàn)在Linux下運(yùn)行速度飛快,
但是我同時(shí)發(fā)現(xiàn)在windows下面速度奇慢锌俱, 40M文件需要30多秒,簡(jiǎn)直無法忍受峰档。
后來我在windows下用 gcc編譯編譯getinmemory.c, 同樣發(fā)現(xiàn)速度一樣慢视卢,
我沉思了很久, 會(huì)不會(huì)是因?yàn)榛卣{(diào)函數(shù)申請(qǐng)內(nèi)存慢呢今豆,
果然屏蔽回調(diào)函數(shù)之后發(fā)現(xiàn)速度10倍提升莉测,
慢慢修改把回調(diào)函數(shù)一次申請(qǐng)固定40M內(nèi)存颜骤,
真的解決了這個(gè)問題。
看來windows realloc( ) 給開發(fā)者留下了大坑捣卤,
下面有一篇關(guān)于 windows linux realloc 的文章忍抽,可能對(duì)你有幫助:
https://blog.kowalczyk.info/article/2be/realloc-on-Windows-vs-Linux.html