win32开发中,频繁调用另一应用程序耗时较长,能否减少耗时

win32开发中,频繁调用另一应用程序耗时较长,能否减少耗时,第1张

可以从调用方式上面下手,比如用消息交互代替远程过程调用,由于远程过程调用大部分都是同步调用,消息形式交互的话可以实现异步调用,在发送消息后本程序可以一边运行一边等待调用程序返回结果。在设计方法上,可以选择使用面向服务的架构,直接调用已有服务来实现功能,由于已发布的服务都是经过多方考验的,所以若你网络没问题的话应该就可以大大缩短时延。

#include "stdioh"

#include <timeh>

void hannota(int n,char ta1,char ta2,char ta3);

void main()

{

int n;

clock_t begin, duration;

printf("input the number of diskes:");

scanf("%d",&n);

begin = clock();

hannota(n,'1','2','3');

duration = clock() - begin;

printf( "用时约: %d毫秒", duration1000 / CLOCKS_PER_SEC );

printf("\n");

}

void hannota(int n,char ta1,char ta2,char ta3)

{

if(n==1)

printf("%c--->%c",ta1 ,ta2);

else

{

hannota(n-1,ta1,ta3,ta2);

printf("%c---->%c",ta1,ta2);

hannota(n-1,ta3,ta2,ta1);

}

}

需要自己在每一行代码前后加上日志时间打印。

目前查询程序执行耗时,需要自己在每一行代码前后加上日志时间打印,在代码执行后,计算这一句代码的耗时。

Idea使用精确查找技巧总结:

1、Command+N搜索类,有选项可以搜索包含jar中的类。

2、Command+Shift+N搜索文件,有选项可以设置搜索包含Jar中的所有文件。

3、Command+Shift+Alt+N搜索标号(方法、成员变量等)有选项可以设置搜索包含Jar中的所有。

4、Command+Shift+F搜索字符串,与Eclipse中的Ctrl+H一样可以搜索字符串,有一些选项可以使用。

首先要明白,晶振12MHz时,机器周期1μs。

MOV R7,#,指令周期1μs

NOP,指令周期1μs

DJNZ R,指令周期2μs

RET,指令周期2μs

为计算程序执行时间,以注释形式给每条指令加上标号

DELAY: MOV R7,#250 ;1

LOOP2: MOV R6,#200 ;2

LOOP1:NOP ;3

NOP ;4

NOP ;5

DJNZ R6,LOOP1;6

DJNZ R7,LOOP2;7

RET 8

第3、4、5、6条指令每执行一次,耗费时间3x1μs+2μs=5μs

循环200次,耗时200x5μs=1000μs

加上第2条指令耗时1μs,第7条指令耗时2μs,内层循环总耗时1000μs+1μs+2μs=1003μs

外层循环250次,总共耗时250x1003μs=250750μs

加上第1条指令耗时1μs,第8条指令耗时2μs,整个程序耗时

250750μs+1μs+2μs=250753μs≈025s

goto语句他可以跳过一些代码段,在一定程序上是可以提高程序运行速度

至于为什么避免使用,是因为他让程序的可读性变差,不利于后期维护一个项目可能编写者对于她的逻辑很直观,但是接受者就很难理顺

你能写一下你的程序吗?

srand不太耗时啊,你可能是别的地方时间太久了。

而且srand(time(NULL))在一个程序中只需执行一次啊,在main开头写一下就好了,可以看作是O(1)的。

你是不是执行次数太多了?

显示程序 放到定时器中断执行。

如果你的显示是数码管的话,我的建议是把显示程序放到定时器中断。定时器可以设置5~10ms中断一次。

如果你的显示器是液晶,你定时中断就可以弄成几百毫秒或者1s 也行。

晶振频率是12MHz,说明单周期指令的执行时间是1us;DJNZ R5,$ 这条指令是自减并判断是否为零的语句,耗时2us,因此会执行224820=4960us;同理,DJNZ R4,D2 这条指令会执行202=40us;另外,MOV R5,248 是单周期指令,执行一次耗时1us,因此 MOV R5,248 这条指令会执行120=20us;最后,MOV R4,#20 这条指令执行一次,耗时 1 us ,该程序共耗时 4960us+40us+20us+1us=5021us=5021ms;

以上就是关于win32开发中,频繁调用另一应用程序耗时较长,能否减少耗时全部的内容,包括:win32开发中,频繁调用另一应用程序耗时较长,能否减少耗时、C语言的计算耗时问题、idea如何查看代码的时间开销等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9394746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存