簡體   English   中英

C++ Very Sleepy 奇怪的結果

[英]C++ Very Sleepy strange results

我目前正在編寫一個 SDL 網絡游戲,一切都很完美……但我的游戲只能以 30fps 的速度運行,所以我運行了一個非常困倦的分析。 第一個奇怪的效果,非常困將我的游戲的性能提高到 60Fps ...(為什么?)其次,有很多 SDL_LogCritical 調用(您可以在此處獲取報告: http ://puu.sh/gauEi/9a852462e6 .png )。 控制台中沒有顯示任何內容。 (我也是用SDLNet,用TCP協議,沒有包松)。

此外,我覆蓋了 SDL 日志的輸出:

void log(void* userdata, int category, SDL_LogPriority priority, const char* message) { 
    std::cout << "Log : " << message << std::endl;
} 

int main(int argc, char **argv) {
    SDL_Init(SDL_INIT_EVERYTHING);
    SDLNet_Init();
    SDL_LogSetOutputFunction(log, NULL);
    SDL_LogCritical(1, "TEST LOG");

}

我可以在控制台中看到“測試日志”。 所以消耗 30% 的 SDL_LogCritical 不會輸出所有內容。

我不知道出了什么問題,但頻繁調用日志記錄函數表明出現了問題,SDL 會嘗試告訴您。 但是,缺少輸出可能是由於您顯式或隱式禁用了對控制台的日志記錄。 您對 Network 的使用可能表明您沒有查看正確的控制台來查看這些警告。 由於缺乏給定的信息,這一切都很難診斷。

調試導致的性能提升很奇怪,但通常可以解釋為調試器使用的環境與您正常運行時使用的環境不同。

好的,所以當其他東西調用 SDL 的日志功能時,您看不到輸出。 這表明以某種方式記錄的消息低於必要的優先級。 比較SDL 的源代碼,了解這可能是如何發生的。 也許此時您應該使用調試器來設置斷點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM