Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
r = 0
for i in 0..10_000 do
for j in 0..10_000 do
r = ( r + ( i * j ) % 100) % 47
end
end
puts r
r = 0
10000.times do |i|
10000.times do |j|
r = (r + (i * j) % 100) % 47
end
end
puts "answer: #{r}"
real 0m13.097s user 0m13.074s sys 0m0.020s
real 0m50.666s user 0m50.580s sys 0m0.052s
for i in i1:
for j in i2:
r = ...
print r
def test():
r = 0
rng = range(0, 10000)
for i in rng:
for j in rng:
r = (r + (i * j) % 100) % 47
print("answer: ", r)
if __name__ == '__main__':
import psyco
psyco.bind(test)
test()
mkrivushin@root:~/w/python$ python3 test_3.py 70.3983209133 answer: 39
mkrivushin@root:~/w/python/unladen-swallow$ ./python -O ../test.py
44.4158890247
('answer: ', 39)
mkrivushin@root:~/w/python/unladen-swallow$ ./python -O -j always ../test.py
34.8978021145
('answer: ', 39)
mkrivushin@root:~/w/python$ python test.py
6.42809700966
('answer: ', 39)
никаких привязок к качеству реализации тех или иных библиотек, никаких внешних сервисов, никаких системозависимых операций
def main():
r = 0
for i in xrange(0, 10000):
for j in xrange(0, 10000):
r = (r + (i * j) % 100) % 47
print("answer: ", r)
main()
int r = 0;
DateTime before = DateTime.Now;
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
r = (r + (i * j) % 100) % 47;
}
}
DateTime after = DateTime.Now;
Console.WriteLine(after.Second * 1000 + after.Millisecond -
before.Second * 1000 - before.Millisecond);
from time import clock
clock()
r = 0.0
i = 0.0
while i < 10000.0:
j = 0.0
while j < 1000.0: # !!!
r = (r + (i * j) % 100.0) % 47.0
j += 1.0
i += 1.0
print("answer: ", r, clock())
exit()
$r = 0;
for my $i (0..9999) {
for my $j (0..9999) {
$r = ($r + ($i * $j) % 100) % 47;
}
}
print "answer: $r\n";
$ uname -a; grep -i mhz /proc/cpuinfo Linux desktop 2.6.27.19-3.2-default #1 SMP 2009-02-25 15:40:44 +0100 i686 i686 i386 GNU/Linux cpu MHz : 3215.441 cpu MHz : 3215.441
#!/usr/bin/perl
use integer;
use Benchmark;
$t = timeit(1,sub {
$r = 0;
for my $i (0..9999) {
for my $j (0..9999) {
$r += $i * $j % 100;
$r %= 47;
}
}
print "answer: $r\n";
});
print "time: ",timestr($t);
$ sudo nice -n -9 time ruby 1.rb
answer: 39
20.99 real 20.81 user 0.05 sys$ ruby -v
ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9]
#include <iostream>
using namespace std;
int main(void) {
long r = 0;
for (unsigned int i = 0; i < 10000; ++i) {
for (unsigned int j = 0; j < 10000; ++j) {
r = (r + (i * j) % 100);
}
}
r %= 47;
cout << "answer: " << r << endl;
}
long r = 39;
Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»