小编Wha*_*sUp的帖子

为什么LOOP这么慢?

这让我很吃惊,因为我一直以为loop应该有一些内部优化.

这是我今天做的实验.我使用的是Microsoft Visual Studio 2010.我的操作系统是64位Windows 8.我的问题就在最后.

第一个实验:

平台:Win32
模式:调试(禁用优化)

begin = clock();
_asm
{
    mov ecx, 07fffffffh
start:
    loop start
}
end = clock();
cout<<"passed time: "<<double(end - begin)/CLOCKS_PER_SEC<<endl;
Run Code Online (Sandbox Code Playgroud)

输出:( passed time: 3.583
每次运行时,数字会略有变化,但在道德上大小相同.)

第二个实验:

平台:Win32
模式:调试

begin = clock();
_asm
{
    mov ecx, 07fffffffh
start:
    dec ecx
    jnz start
}
end = clock();
cout<<"passed time: "<<double(end - begin)/CLOCKS_PER_SEC<<endl;
Run Code Online (Sandbox Code Playgroud)

输出: passed time: 0.903

第三和第四个实验:

只需将平台更改为x64即可.由于VC++不支持64位内联汇编,我必须将循环放在另一个*.asm文件中.但最后结果是一样的.

从这一点开始,我开始使用我的大脑 - loop比它慢4倍dec ecx, jnz start,而它们之间唯一的区别,AFAIK,是dec ecx …

assembly

12
推荐指数
1
解决办法
1095
查看次数

在Android中,有没有办法检查某个服务是否存在?

调用 时startActivity,可以尝试捕获 anActivityNotFoundException来了解活动是否存在。

然而打电话的时候startService却没有ServiceNotFoundException。如何检测该服务是否存在?

我为什么要这样做

据我所知,对的调用startService将被异步处理,因此我想知道我是否应该期望来自服务的响应(例如回调或广播)。

到目前为止我做了什么

我搜索了一下并在这里找到了一个相关问题。看来内部有一个ClassNotFoundException凸起。

是否可以在某处捕获此异常?这个Class.forName()方法似乎不对……是吗?

java service android exception

2
推荐指数
1
解决办法
954
查看次数

标签 统计

android ×1

assembly ×1

exception ×1

java ×1

service ×1