MySQL查询结果中Duration Time和Fetch Time的含义

本文解释了MySQL中Duration和Fetch时间的区别:Duration衡量查询执行时间,需优化;Fetch时间取决于网络,与查询优化无关,可能暗示网络问题。

一 查询

二 Duration和Fetch的含义

mysql duration and fetch time - Stack Overflow

MySQL :: Re: Getting the execution time of a query

Fetch time - measures how long transferring fetched results take, which has nothing to do with query execution. I would not consider it as sql query debugging/optimization option since fetch time depends on network connection, which itself does not have anything to do with query optimization. If fetch time is bottleneck then more likely there's some networking problem.

Note: fetch time may vary on each query execution.

Duration time - is the time that query needs to be executed. You should try to minimize it when optimizing performance of sql query.

翻译

1、fetch time 是传输获取结果所消耗的时间,与sql语句执行时间无关。由于fetch时间依赖网络连接的快慢,所以不能作为优化sql语句时间参考。如果fetch time过长,需要检查网络原因。

2、fetch time 每次执行都可能会变化。

3、duration time 是执行sql语句所消耗的时间,对sql语句优化就是减少这个时间。

在 Simulink 生成嵌入式 C 代码时,启用 **Link-Time Optimization (LTO)** 可以显著提升最终可执行文件的性能与代码体积。LTO 是一种编译优化技术,它允许编译器在整个程序的上下文中进行优化,而不仅仅局限于单个编译单元。在嵌入式系统中,尤其是基于 ARM Cortex-M 系列的微控制器,LTO 能够有效减少代码大小并提升运行效率。 ### 配置 Simulink 使用 LTO Simulink 通过 **Embedded Coder** 支持 LTO 的配置,具体可以通过以下方式进行: 1. **启用 LTO 在编译器命令行中** 在生成代码的构建系统中,可以在编译链接阶段启用 LTO 标志。例如,对于基于 GCC 的工具链,可以添加以下编译器选项: ```bash -flto ``` 这个选项需要在编译链接阶段都启用,确保整个流程支持 LTO。 2. **在 Simulink 中配置 TLC 文件以支持 LTO** 如果使用自定义的系统目标文件(`.stf`)或 TLC 文件来控制代码生成流程,可以在 TLC 文件中插入 LTO 编译标志。例如: ```tlc %assign CompileFlags = "-flto" %assign LinkFlags = "-flto" ``` 这样可以在生成 Makefile 或项目配置时,自动插入 LTO 相关的编译与链接选项。 3. **通过 Simulink 配置界面设置** 在 Simulink 的配置参数中,进入 **Code Generation > Custom Code** 页面,可以在 **Additional Compiler Flags** **Additional Linker Flags** 中添加 `-flto` 以启用 LTO: - **Additional Compiler Flags**: `-flto` - **Additional Linker Flags**: `-flto` 此方法适用于使用 Simulink 自带的构建系统生成代码的情况[^1]。 4. **使用 ARM 编译工具链的 LTO 支持** 如果目标平台是 ARM Cortex-M 系列,并使用 ARM 编译器(如 armcc 或 armclang),可以启用对应的 LTO 选项。例如,在 ARM 编译器中,可以使用: ```bash --lto ``` 同时,确保链接器(如 armlink)也支持 LTO 优化,以实现全局优化效果。 ### LTO 的优势与适用场景 - **代码体积减小**:LTO 能够识别并删除未使用的函数变量,从而减少最终生成的二进制文件体积。 - **性能提升**:通过全局优化,LTO 可以改进函数调用、内联优化寄存器分配策略,从而提高运行效率。 - **适用于资源受限设备**:在 Cortex-M 系列等资源受限的嵌入式系统中,LTO 是优化代码质量的重要手段之一[^1]。 ### 示例:在 Simulink 中启用 LTO 的编译选项 在 Simulink 的模型配置中,打开 **Configuration Parameters**,切换到 **Code Generation > Custom Code** 页面,设置如下内容: ```text Additional Compiler Flags: -flto Additional Linker Flags: -flto ``` ### 示例:Makefile 中启用 LTO 如果使用自定义 Makefile 构建生成的代码,确保编译链接命令中包含 `-flto`: ```makefile CFLAGS += -flto LDFLAGS += -flto all: my_model.elf my_model.elf: $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o $@ ``` ### 注意事项 - LTO 会增加编译链接时间,因为它需要在整个程序范围内进行优化分析。 - 确保所有目标文件库都支持 LTO,否则可能导致链接失败或优化失效。 - 在调试阶段建议关闭 LTO,以避免优化带来的调试信息丢失问题。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值