A couple of questions

104 views
Skip to first unread message

Benedikt Terhechte

unread,
Jan 30, 2014, 10:39:20 AM1/30/14
to clojure-ob...@googlegroups.com
Hey,

interesting Project you have here. I did not dive in yet, but I've previously had a look at ClojureC (https://github.com/schani/clojurec). However your approach seems to support much more out of the box.
How is the startup time for an iOS app written With Clojure-Objc? From what I know, running Clojure on Android has the downside of very long app start times. Also, do you have any numbers on performance for this?

looks really good,

Regards & Thanks for open sourcing!
Benedikt

Gal Dolber

unread,
Jan 30, 2014, 11:11:24 AM1/30/14
to Benedikt Terhechte, clojure-ob...@googlegroups.com
hey, thanks for the interest!

The startup time on an iphone 4s to load clojure.core is between 1,5 and 2 seconds. I haven't had a chance to test on iphone 5/5s, would love to see those numbers.

clojure.core is huge, everything else should only take milliseconds.

The good news is that it can be improved. The first time I ran the compiled code took 12s to load clojure.core, and with a few specific tweaks it got down to 2s. This also relies on j2objc, so we may also get performance improvements from them.

I don't have any numbers on performance yet. 


--
You received this message because you are subscribed to the Google Groups "clojure-objc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure-objc-dis...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Benedikt Terhechte

unread,
Jan 31, 2014, 4:36:55 AM1/31/14
to clojure-ob...@googlegroups.com, Benedikt Terhechte, g...@dolber.com
Hey,

that sounds great. I'll try to play around with it in the next couple of days and see how it performs on iPhone 5s. 
Would it be possible to use something like ProGuard (http://proguard.sourceforge.net) to strip the code of unused elements? Or does that not work because j2objc does not compile to bytecode?
Or maybe the new tools.analyzer, to strip of unused clojure.core stuff (obviously, then eval wouldn't work anymore, I think).

Cheers,
Benedikt
To unsubscribe from this group and stop receiving emails from it, send an email to clojure-objc-discuss+unsub...@googlegroups.com.

Gal Dolber

unread,
Jan 31, 2014, 7:34:53 AM1/31/14
to Benedikt Terhechte, clojure-ob...@googlegroups.com, Benedikt Terhechte
No, its more complicated than that. There's no way to find the unused code with something like proguard, and if you see a the java output of a simple app you'll see why. 
What we really need is a clojure's proguard, we need to trace all the used functions from an namespace and strip everything else away.

eval is not working yet as it tries to emit bytecode. Before this project I made a clojure interpreter in java on top of clojure-jvm and compiled everything to objc with j2objc. It was really slow and had a really small subset of features.. but it worked. So I know its possible to get most of the eval working, its just not next on the list..


To unsubscribe from this group and stop receiving emails from it, send an email to clojure-objc-dis...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages