QT性能分析调优

代码分析

clock():返回自程序启动起,处理器时钟所使用的时间。

clock_t start_t = clock();
qDebug() << start_t;

GetTickCount():MFC计时器,系统运行时间

long T1 = GetTickCount();//ms

程序段运行时间

clock_t T1,T2;

// 在开始计时位置:
T1 = clock();

//  结束位置:
T2 = clock();

double dtime = (double)(T2-T1)/CLOCKS_PER_SEC);//S
// 开始位置
QDateTime t1 = QDateTime::currentDateTime();
...

// 结束位置
QDateTime t2 = QDateTime::currentDateTime();
int seconds = t2.toTime_t() - t1.toTime_t();  // s
int msecs = t2.toMSecsSinceEpoch() - t1.toMSecsSinceEpoch();  // ms

VS性能分析工具

使用vs自带的【性能探查器】找到瓶颈部分(函数、模块等),逐一改进。
QT性能分析调优_第1张图片

  • CPU Usage
    • 检测CPU的性能,主要用于发现影响CPU瓶颈(消耗大量CPU资源)的代码。
  • GPU Usage
    • 检测GPU的性能,常用于图形引擎的应用(如DirectX程序),主要用于判断是CPU还是GPU的瓶颈。
  • Memory Usage
    • 检测应用程序的内存,发现内存。
  • Performance Wizard
    • 性能(监测)向导,综合检测程序的性能瓶颈。

带你玩转Visual Studio——性能分析与优化

性能调优方案

延迟dll加载

方案一:
QT性能分析调优_第2张图片

方案二:
在QT的.pro文件中添加:

win32: QMAKE_LFLAGS_RELEASE += /DELAYLOAD:delay.dll

DLL动态链接库分包引用及延迟加载使用

DLL高级技术之延迟加载

关于VS的延迟加载dll的使用和理解

DELAYLOAD在Qt LNK2001中出现链接错误:无法解析外部符号

window main启动函数分析

mainCRTStartup()

  • __scrt_common_main():GS和SEH检查,这俩个检查主要是防止内存溢出。
  • invoke_main():初始化环境变量,并调用main函数,进入程序。

逆向程序分析:Windows的main(),启动函数分析

你可能感兴趣的:(C++\QT,qt,性能)