我正在使用Jquery使图像水平滚动到我的页面.唯一的问题是它使用了大量的cpu使用.在Firefox中的单核笔记本电脑上高达100%.什么可能导致这???
jQuery的
<script>
jQuery(document).ready(function() {
$(".speech").animate({backgroundPosition: "-6000px 0px"}, 400000, null);
});
</script>
Run Code Online (Sandbox Code Playgroud)
CSS
.speech {
/*position:fixed;*/
top:0;
left:0px;
height:400px;
width:100%;
z-index:-1;
background:url(/images/speech.png) -300px -500px repeat-x;
margin-right: auto;
margin-left: auto;
position: fixed;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="speech"></div>
Run Code Online (Sandbox Code Playgroud) 我有一些使用大量CPU的脚本是否可以限制允许进程使用的CPU数量?顺便说一下,我在CentOs 5.5上运行.
我们在Google App Engine上有一个相当大的数据库 - 只有超过50,000个实体 - 我们希望从中清除过时的数据.计划是编写一个延迟任务来迭代我们不再需要的实体,并批量删除它们.
一个复杂因素是我们的实体也有我们想要清除的子实体 - 没问题,我们想; 我们只是查询这些实体的数据存储区,并将其与父项同时删除:
query = ParentKind.all()
query.count(100)
query.filter('bar =', 'foo')
to_delete = []
for entity in enumerate(query):
to_delete.append(entity)
to_delete.extend(ChildKindA.all().ancestor(entity).fetch(100))
to_delete.extend(ChildKindB.all().ancestor(entity).fetch(100))
db.delete(to_delete)
Run Code Online (Sandbox Code Playgroud)
我们限制自己一次删除100个ParentKind实体; 每个人ParentKind有大约40个孩子ChildKindA和ChildKindB实体 - 可能有4000个实体.
这在当时似乎是合理的,但是我们运行了一个批处理作为测试,结果查询运行了9秒 - 并且在可计算的CPU时间内花费了1933 秒来访问数据存储区.
这似乎相当苛刻 - 每个实体0.5个可计费秒! - 但我们并不完全确定我们做错了什么.它只是批量的大小吗?祖先的查询特别慢吗?或者,删除(实际上,所有数据存储访问)只是作为糖蜜缓慢?
我们将查询更改为keys_only,虽然这样可以将运行一个批处理的时间缩短到4.5个实际秒,但CPU时间仍然需要大约1900秒.
接下来,我们将Appstats安装到我们的应用程序(感谢,kevpie)并运行一个较小的批次 - 10个父实体,总计约450个实体.这是更新的代码:
query = ParentKind.all(keys_only=True)
query.count(10)
query.filter('bar =', 'foo')
to_delete = []
for entity in enumerate(query):
to_delete.append(entity)
to_delete.extend(ChildKindA.all(keys_only=True).ancestor(entity).fetch(100))
to_delete.extend(ChildKindB.all(keys_only=True).ancestor(entity).fetch(100))
db.delete(to_delete) …Run Code Online (Sandbox Code Playgroud) 我正在做一个VoIP程序,它不断检查录音缓冲区中是否有任何内容(FMOD库,只要函数getRecordPosition> 0,然后缓冲区中就有数据).
所以这将是:
while (true) {
if(getRecordPosition>0) {
process data....
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致非常高的CPU使用率.一个版本是使用sleep()但是如果可能的话我宁愿不使用它.例如,win32消息处理及其事件驱动的循环不会消耗很多cpu周期,这是我试图模仿的东西.同时我理解函数getRecordPosition()必须经常调用以查看返回值是否高于0.
我是否坚持做一段时间(真实)循环和睡眠()一段时间以保持低CPU使用率?
我用Google搜索并完成了一些查找,但大多数使用sleep()或某些POSIX与mutex同步返回.(我正在做一个c ++ win32应用程序)
干杯
---编辑:忘记提及我没有访问fmod source corde:/ ---
我尝试将我的程序CPU使用量除以核心.现在我使用PerformanceCounter并在0到1之间更改InstanceName我有来自2个核心的数据.
PerformanceCounter pc0 = new PerformanceCounter("Processor", "% Processor Time", "0");
PerformanceCounter pc1 = new PerformanceCounter("Processor", "% Processor Time", "1");
Run Code Online (Sandbox Code Playgroud)
如何获得第3,第4核等的核心使用?
有人能帮帮我吗?
谢谢
我在C#中实现了一个非常基本的线程:
private Thread listenThread;
public void startParser()
{
this.listenThread = new Thread(new ThreadStart(checkingData));
this.listenThread.IsBackground = true;
this.listenThread.Start();
}
private void checkingData()
{
while (true)
{
}
Run Code Online (Sandbox Code Playgroud)
}
然后我立即获得100%的CPU.我想检查传感器数据是否在while(true)循环内读取.为什么会这样?
提前致谢.
在Windows Azure上托管应用程序的所有服务器实例上查看和报告CPU和内存使用百分比统计信息的最简单方法是什么?
是否有必要编写一个监视和记录CPU和内存使用情况的辅助角色?或者,Windows Azure中是否有某些内容可以自动记录您可以使用的内容?如果需要构建自定义内容,那么最好的方法是什么?
我正在为MAC和Windows开发一个javaFx应用程序,我发现该应用程序在MAC中使用的是非常大的内存和CPU使用率.
当我在Windows任务管理器中看到我的应用程序活动时,它显示平均80MB内存和1-2%CPU的使用率,最大可达150MB和12-15%CPU.另一方面,在MAC Activity Monitor中,相同的应用程序在启动时显示150MB和12-15%的CPU,并且持续增加超过1GB和90%的CPU.
这是我在JavaFX应用程序中发现的一个非常奇怪的问题.
我甚至测试了这个简单的java应用程序,并发现在MAC和Windows中内存和CPU的类似行为.
为什么Java在MAC中使用更多内存和CPU?有什么可以解决这个问题的原因吗?
我在自动脚本中的某个点上的python进程开始在基于Linux的系统(Ubuntu)上咀嚼CPU.我正在尝试在GDB中调试此问题.我是GDB的新手.是否有任何GDB命令来提供有关哪个线程正在使用大多数cpu的信息.查看线程堆栈并不能真正解决这个问题.
在windows windbg世界中,命令'!runaway'确实给出了进程中每个线程消耗的时间信息.我们在这里有相同的命令吗?还有其他调试问题的建议吗?
我是fail2ban的新手,并且很难确定我正在考虑设置的不同配置的性能考虑因素.这是在覆盆子pi板上运行,所以性能是一个问题.
我能想到的明显的优化是使用高效的正则表达式,只需要最少数量的jail.我想我的具体问题是:
举个例子,这个监狱会让某人每天尝试3,600个SSH登录密码,如果他们弄清楚fail2ban配置并调整他们的脚本时间以适应.
[ssh]
enabled = true
action = iptables-allports[name=ssh]
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
findtime = 120
Run Code Online (Sandbox Code Playgroud)
如果我们将findtime更改为86400(1天)的不同极限,它每天只允许5次尝试,但现在它正在监视日志文件的更大部分.这对资源使用有何影响?
另一个例子,POST洪水攻击的监狱:
[apache-post-flood]
enabled = true
action = iptables-allports[name=apache-post-flood]
filter = apache-post-flood
logpath = /var/log/apache2/*access.log
maxretry = 10
findtime = 10
Run Code Online (Sandbox Code Playgroud)
在这里,我们有相反的情况,其中findtime计数器每10秒重置一次.它还监控所有*访问日志(我猜,再次,我是新手).这可能意味着它正在监视access.log,other_vhosts_access.log,以及https部分网站的https_access.log.如果这是忙碌的一天怎么样,这些文件都是10-20mb?
希望这有助于解释我的想法.在此先感谢您的帮助.