I wrote a simple for
loop in Delphi and translated it to Julia. The execution time of the Delphi program, compared with the Julia one, is just pathetic: Julia is 7 times faster - see the program and the results.
I am trying to figure out how this is possible, because Delphi was supposed to be one of the fastest languages on the planet!
I want to compare the ASM code generated by Julia with the ASM code generated by Delphi. In Delphi, I need only one click to get that code. Where I can see the ASM code for a specific function in Julia?
using BenchmarkTools
println("----------- Test for loops")
# test for loops
function for_fun(a)
total = 0
big = 0
small = 0
for i in 1:a
total += 1
if i > 500000
big += 1
else
small += 1
end
end
return (total, small, big)
end
res_for = for_fun(1000000000)
println(res_for)
@btime for_fun(1000000000)
You use the @code_native
macro applied to the function call. Here's an example
julia> @code_native 1+1
.text
.file "+"
.globl "julia_+_13305" # -- Begin function julia_+_13305
.p2align 4, 0x90
.type "julia_+_13305",@function
"julia_+_13305": # @"julia_+_13305"
; ┌ @ int.jl:87 within `+`
.cfi_startproc
# %bb.0: # %top
leaq (%rdi,%rsi), %rax
retq
.Lfunc_end0:
.size "julia_+_13305", .Lfunc_end0-"julia_+_13305"
.cfi_endproc
; └
# -- End function
.section ".note.GNU-stack","",@progbits