Sub-nanosecond (less than one clock cycle) results indicate that your benchmark has been compiled away (constant propagation is your “enemy” here). You can wrap the integer literal into a Ref
to avoid constant propagation.
julia> f(x) = x^2
f (generic function with 1 method)
julia> @btime f(123456789);
0.043 ns (0 allocations: 0 bytes)
julia> @btime f(Ref(123456789)[]);
1.513 ns (0 allocations: 0 bytes)
julia> x = 123456789;
julia> @btime f($x);
1.514 ns (0 allocations: 0 bytes)