我正在用Ruby实现一个检查系统.它使用不同的测试运行可执行文件.如果解决方案不正确,可能需要永远完成某些硬测试.这就是为什么我想将执行时间限制为5秒.
我正在使用system()函数来运行可执行文件:
system("./solution");
Run Code Online (Sandbox Code Playgroud)
.NET有一个很好的WaitForExit()方法,Ruby呢?
有没有办法将外部进程的执行时间限制为5秒?
谢谢
我正在编码一个问题(参考--http://www.codechef.com/FEB11/problems/THREECLR/)
以下是我的代码
import java.io.*;
import java.util.*;
public class Main {
static String ReadLn (int maxLg) // utility function to read from stdin
{
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = "";
try
{
while (lg < maxLg)
{
car = System.in.read();
if ((car < 0) || (car == '\n')) break;
lin [lg++] += car;
}
}
catch (IOException e)
{
return (null);
}
if ((car < 0) && (lg == 0)) …Run Code Online (Sandbox Code Playgroud) 我有一些事件,他们每个人都有可能发生,如果他们这样做,他们就会有重量.我想用相应的权重创建事件概率的所有可能组合.最后,我需要按重量顺序排序.这就像生成一个概率树,但我只关心生成的叶子,而不是它们获取它们的节点.我不需要在创建最终结果期间查找特定条目,只需创建所有值并按重量对它们进行排序.
将会有大约5-15个事件,但由于n ^事件有2 ^ n的可能性,并且这是经常做的,我不希望它花费不必要的长时间.速度比使用的存储量重要得多.
我提出的解决方案有效,但速度很慢.想要更快的解决方案或一些改进的想法吗?
class ProbWeight {
double prob;
double eventWeight;
public ProbWeight(double aProb, double aeventWeight) {
prob = aProb;
eventWeight = aeventWeight;
}
public ProbWeight(ProbWeight aCellProb) {
prob = aCellProb.getProb();
eventWeight = aCellProb.geteventWeight();
}
public double getProb(){
return prob;
}
public double geteventWeight(){
return eventWeight;
}
public void doesHappen(ProbWeight aProb) {
prob*=aProb.getProb();
eventWeight += aProb.geteventWeight();
}
public void doesNotHappen(ProbWeight aProb) {
prob*=(1-aProb.getProb());
}
}
//Data generation for testing
List<ProbWeight> dataList = new ArrayList<ProbWeight>();
for (int i =0; …Run Code Online (Sandbox Code Playgroud) 我正在研究 python,并遇到了一些查找代码的统计信息和执行时间的概念
假设我有以下代码
from time import gmtime, strftime
import timeit
def calculation():
a = 2
b = 3
res = a + b
return res
if 'name' == 'main' :
exec_time = timeit.timeit(calculation)
print exec_time
Run Code Online (Sandbox Code Playgroud)
结果:
0.2561519145965576
Run Code Online (Sandbox Code Playgroud)
所以从上面的代码我可以找到代码的执行时间,但是如何在python中找到代码的统计信息呢?
最后我的意图如下
编辑后的代码:
例如我的文件中有上面的代码test.py
现在我已经使用下面的命令运行了上面的文件
python -m cProfile test.py
Run Code Online (Sandbox Code Playgroud)
结果 :
sh-4.2$ python -m cProfile test.py
4 function calls in 0.001 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.001 0.001 0.001 0.001 test.py:1(<module>)
1 …Run Code Online (Sandbox Code Playgroud) 我的猜测是__no_operation()内部(ARM)指令应该执行1 /(168 MHz),前提是每个NOP指令在一个时钟周期内执行,我想通过文档验证.
是否有关于处理器的指令周期执行时间的信息的标准位置?我试图确定STM32f407IGh6处理器执行运行在168 MHz的NOP指令应该花多长时间.
某些处理器每个指令周期需要多次振荡,有些处理器在将时钟周期与指令周期进行比较时为1比1.
术语"指令周期"甚至不存在于STMicro提供的整个数据表中,也不存在于他们的编程手册中(列出处理器的指令集,顺便说一下).但是,8051文档明确定义了其指令周期执行时间,以及其机器周期特性.
考虑以下情况:
案例1 :(评论较少for loop)
import java.io.IOException;
public class Stopwatch {
private static long start;
public static void main(String args[]) throws IOException {
start = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i++) {
/**
* Comment Line 1
* Comment Line 2
* Comment Line 3
* Comment Line 4
*/
}
System.out.println("The time taken to execute the code is: " + (System.currentTimeMillis() - start)/1000.0);
}
}
Run Code Online (Sandbox Code Playgroud)
执行代码所需的时间是:2.259
案例2 :(更多评论for loop) …
如何在Couchbase中计算查询时间和查询执行计划.是否有任何实用程序,如Oracle解释计划和Couchbase数据库中的tkprof?
编辑:
我试图看看哪个数据库最适合我的数据.所以我想尝试使用mysql,mongodb,couchbase.我尝试了三个不同数量的条目10k,20k,40k条目.
使用mysql,我可以使用"set profiling = 1"查看查询时间.使用此设置我在三种情况下运行查询1)没有索引主键,2)索引主键3)第二次运行相同的查询(以查看查询缓存的效果)
同样,我使用mongodb运行相同的测试,并以表格格式汇总我的结果.我想用couchbase运行相同的测试,看看它的性能如何.我试图搜索网络,但找不到任何我可以遵循以获得类似结果的内容.
下面是我的表(所有时间都是毫秒).带有大括号()的第二行显示第二次运行的查询时间.
Records Count Mysql MongoDB CouchBase
___________________ _______________ ___________
Without | With Without | With With Index
Index | Index Index | Index
10K 62.27325 | 8.537 3311 | 33
(33.3135) | (3.27825) (7) | (0)
20K 108.4075 | 23.238 132 | 39
(80.90525)| (4.576) (17) | (0)
40K 155.074 | 26.26725 48 | 10
(110.42) | (10.037) (42) | (0)
对于couchbase,我想知道使用其密钥检索文档时的性能(类似于memcahed的功能).查询时间也使用其视图.
performance execution-time nosql sql-execution-plan couchbase
由于糟糕的语法和不明显的细节,一些正则表达式的执行时间呈指数级增长。有没有什么通用的方法可以分析和学习某个正则表达式是否具有线性或指数执行时间?
有什么办法可以增加 Google Apps 脚本的 6 分钟执行时间限制?我认为答案可能是 G Business Suite 的抢先体验计划。如果我能加入抢先体验计划,我可能愿意每月为 G Business Suite 支付 10 美元,以便将执行限制从 6 分钟增加到 30 分钟。但是 G Suite 帮助论坛的一位顾问说抢先体验是一个有限的计划,这意味着我不能保证我能得到它。
有没有其他方法可以增加 6 分钟的执行限制?
请注意,在这个问题中,我不是在询问如何优化我的脚本以适应 6 分钟限制的想法。(我将来可能会问,如果当前问题的答案是“不,没有其他办法。”)
因此,对当前问题的适当答案是:
我是数据库的唯一管理员.我想运行一次性脚本,基本上需要大约3800个扫描图像(它将增长到10万)并使用PHP exec()函数为每个图像创建几个缩略图来执行外部程序imagemagick来创建那些缩略图.
我创建了脚本,启动它,一切都完美无缺!一切都在我的本地开发服务器上完成.该脚本大约需要11分钟来创建数千个缩略图.这是每隔一年运行一次的操作,因此后果很少.
到现在为止还挺好.这是我遇到问题的时候.
我在本地开发服务器上所做的一切,我在实时服务器上进行测试.我有hostgator的共享主机帐户.在共享主机上运行我的11分钟长脚本会给出错误"超过30秒的最大执行时间...".我做了我的研究,尝试了这篇文章中的许多解决方案(增加php的最大执行时间),只是为了意识到我无法改变共享主机上脚本的最大执行时间.
我被卡住了.所以,我的问题是这里显而易见的解决方案是什么.
我正在考虑为每200张图像启动脚本,自动刷新页面并为接下来的200张图像再次运行脚本,依此类推,直到没有更多图像为止.这样我就可以确定我的共享主机上允许的最长执行时间是30秒.它看起来像是一个解决方案,但我不确定这是否是否定,如果我将遇到更大的问题,太多的负面影响..
这是明显的解决方案吗?有人遇到同样的问题吗?你们有什么建议的?
谢谢
execution-time ×10
java ×3
algorithm ×2
performance ×2
comments ×1
cortex-m ×1
couchbase ×1
jdk1.5 ×1
limit ×1
max ×1
nop ×1
nosql ×1
php ×1
probability ×1
process ×1
python ×1
regex ×1
ruby ×1
statistics ×1
stm32 ×1