Raspberry BASIC > Programming Challenges

SALC Ubuntu 64

<< < (2/6) > >>

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