Raspberry BASIC > Programming Challenges
SALC Ubuntu 64
John Spikowski:
Python3 (Ubuntu 64 RPi 4B 4GB)
--- Code: Python ---# Python 3 - 1mil4.py - AIR def main(): t = [] r ="" a = [None] * 1000001 b = bytearray(26) decode = bytearray.decode blah = range(1000001) append = list.append for x in blah: alpha = x % 26 b[alpha] = alpha + 65 a[x] = x if alpha == 25: append(t, decode(b[::-1])) r = ''.join(t) print("r LEN: {}".format(len(r))) print("Front: {}".format(r[:26])) print("Back: {}".format(r[-26:])) print("UBVal: {}".format(a[1000000])) if __name__ == "__main__": main()
ubuntu@rpi4b:~/salc/python-dev$ timex python3 1mil4.py
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.49user 0.06system 0:00.56elapsed 99%CPU (0avgtext+0avgdata 52408maxresident)k
0inputs+0outputs (0major+12086minor)pagefaults 0swaps
ubuntu@rpi4b:~/salc/python-dev$
John Spikowski:
Ruby (Ubuntu 64 RPi 4B 4GB)
--- Code: Ruby ---# Ruby - 1mil4.rb - AIR a = [10000001]s = ""t = "" (0..1000001).each do |x| a << x+1 s << (x%26)+65 if s.length == 26 t << s.reverse s.clear endend puts "t LEN: #{t.length}"puts "Front: #{t[0,26]}"puts "Back: #{t[-26,26]}"puts "UBVal: #{a[1000000]}"
ubuntu@rpi4b:~/salc/ruby-dev$ timex ruby 1mil4.rb
t LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.68user 0.08system 0:00.88elapsed 86%CPU (0avgtext+0avgdata 18092maxresident)k
2240inputs+0outputs (2major+3678minor)pagefaults 0swaps
ubuntu@rpi4b:~/salc/ruby-dev$
John Spikowski:
Perl (Ubuntu 64 RPi 4B 4GB)
--- Code: Perl ---# Perl - 1mil4.pl my $s = "";my $t = "";my $a = [1000000]; for (my $x = 1; $x <= 1000000; $x++) { $s = $s . chr((($x - 1) % 26) + 65); $a[$x] = $x; if (length($s) == 26) { $t = $t . $s; $s = ""; }} my $r = scalar reverse $t; printf("r LEN: %d\n", length($r));printf("Front: %s\n", substr($r, 0, 26));printf("Back: %s\n", substr($r, -26));printf("UBVal: %d\n", $a[1000000]);
ubuntu@rpi4b:~/salc/perl-dev$ timex perl 1mil4.pl
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.85user 0.04system 0:00.90elapsed 99%CPU (0avgtext+0avgdata 38688maxresident)k
0inputs+0outputs (0major+8869minor)pagefaults 0swaps
ubuntu@rpi4b:~/salc/perl-dev$
John Spikowski:
BaCon (Ubuntu 64 RPi 4B 4GB)
--- Code: Text ---' BaCon - 1mil4.bac - AIR OPTION PARSE FALSE s$ = ""t$ = "" DECLARE a[1000001] TYPE NUMBERDECLARE len TYPE size_tDECLARE *stream TYPE FILE stream = open_memstream(&t$,&len) FOR x = 1 TO 1000000 s$ = s$ & CHR$(MOD((x - 1), 26) + 65) a[x] = x IF LEN(s$) = 26 THEN fprintf(stream, "%s", s$) s$ = "" END IFNEXTCLOSE FILE stream r$ = REVERSE$(t$)FREE t$PRINT "r LEN: ",lenPRINT "Front: ",LEFT$(r$, 26)PRINT "Back: ",RIGHT$(r$, 26)PRINT "UBVal: ",a[1000000]
ubuntu@rpi4b:~/salc/bacon-dev$ bacon 1mil4.bac
WARNING: 7 temporary files found! Do you want to delete them ([y]/n)? y
Temporary files were deleted.
Converting '1mil4.bac'... done, 31 lines were processed in 0.034 seconds.
Compiling '1mil4.bac'... cc -c 1mil4.bac.c
cc -o 1mil4 1mil4.bac.o -lbacon -L. -lm
Done, program '1mil4' ready.
ubuntu@rpi4b:~/salc/bacon-dev$ ls -l 1mil4
-rwxr-xr-x 1 ubuntu ubuntu 133856 Dec 15 21:37 1mil4
ubuntu@rpi4b:~/salc/bacon-dev$ timex ./1mil4
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.38user 0.01system 0:00.40elapsed 99%CPU (0avgtext+0avgdata 12096maxresident)k
0inputs+0outputs (0major+3059minor)pagefaults 0swaps
ubuntu@rpi4b:~/salc/bacon-dev$
John Spikowski:
Swift (Ubuntu 64 RPi 4B 4GB)
--- Code: Text ---// Swift 5.1.2 ARM 64- 1mil4.swift var s = ""var t = ""var a = [Int](repeating: 0, count: 1000001) for x in 1...1000000 { let c = (x - 1) % 26 s.append(String(UnicodeScalar(UInt8(c + 65)))) a[x] = x if c == 25 { t.append(String(s.reversed())) s = "" }} print("t LEN: ", t.count)print("Front: \(t.prefix(26))")print("Back: \(t.suffix(26))")print("UBVal: ", a[1000000])
ubuntu@rpi4b:~/salc/swift-dev$ swiftc -O 1mil4.swift
ubuntu@rpi4b:~/salc/swift-dev$ ls -l main
-rwxr-xr-x 1 ubuntu ubuntu 74600 Dec 15 19:13 main
ubuntu@rpi4b:~/salc/swift-dev$ timex ./main
t LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.65user 0.02system 0:00.69elapsed 98%CPU (0avgtext+0avgdata 16392maxresident)k
0inputs+0outputs (0major+2811minor)pagefaults 0swaps
ubuntu@rpi4b:~/salc/swift-dev$
Major improvement for Swift on ARM 64. My guess is that the reason Swift runs like a pig on Rasbian is that Swift depends on the OS compilers rather than using the ones included with the language build like other platforms.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version