as others have said, the profiler is the way to go. i just wanted to add, and sorry if this was already obvious, that your implementation (and almost anyone else's, unless they have achieved the god like status of adam langley, dan brown, et al), is likely going to leak info via timing attacks.
on the other hand if you've already considered this and know of info on timing attacks and julia / llvm i would love to know what references you used. cheers, andrew On Friday, 11 September 2015 18:10:11 UTC-3, Corey Moncure wrote: > > https://github.com/cmoncure/crypto/blob/master/aes.jl > > In the process of learning Julia (and crypto) I implemented the Rijndael > block cipher and inverse cipher. I tried to write idiomatic yet concise > code, but the performance is not very desirable. On my machine (i5-2500k @ > 4.0 Ghz) the throughput is piddling, on the order of 10e6 bytes/sec, and > memory allocation is at 3056 bytes / block, which I have not been able to > cut down any further. > > Obviously I do not intend to compete with hand-tuned assembler routines > that heavily exploit SIMD and pre-computed tables, but my completely > unfounded gut feeling is that given the right input, Julia should be able > to approach within a factor of 4-10 without such optimizations. Currently > this routine is within a factor of 1000. > > Any Julia experts out there willing to take a peek at the code and offer > some tips for idiomatic (i.e. within the framework of Julia syntax and > style) optimizations? > > In the course of doing this I have run into several gripes with Julia, > particularly some of the built-in functions which are often confusing or > contradictory by virtue of the type declarations of certain methods (or > lack of needed ones). For instance, Julia does not support negative > indexing of arrays... so then why do so many functions on arrays take only > signed integer types for dimensions? To the noobie it seems like an > obvious choice to type data holding the calculation of matrix dimensions or > indices as unsigned integers, given that the language does not support > negative indexing. Yet this fails unexpectedly in many built-ins such as > sub(). > > >
