tag:blogger.com,1999:blog-4262147391488425950.post2097331107035958770..comments2023-08-14T03:11:17.311-05:00Comments on ClojureCLR: Using ngen to improve ClojureCLR startup timeDavid Millerhttp://www.blogger.com/profile/07657040519395296684noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-4262147391488425950.post-41340423750389004962012-07-10T05:16:22.678-05:002012-07-10T05:16:22.678-05:00Hi
I have exactly the same issue with IronScheme....Hi<br /><br />I have exactly the same issue with IronScheme. Normal around 3 seconds, NGEN'd gets down to 0.1 seconds. As aaronc mentioned though, NGEN does not work form LoadFrom which is a pain if you want to integrate it with VS.<br /><br />I have not been able to pinpoint the issue. Would love to hear your ideas of what could cause this. Perhaps relocation?<br /><br />Cheers<br /><br />leppieleppiehttps://www.blogger.com/profile/13269210098337281803noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-43553059607138205832012-04-06T18:19:52.794-05:002012-04-06T18:19:52.794-05:00I finally got this working when I ILMerge'd th...I finally got this working when I ILMerge'd the .clj.dll files into Clojure.dll. fuslogvw indicated that it wouldn't look for assemblies loaded with Assembly.LoadFrom() in the native image cache. With the ILMerge'd version, everything is in one DLL, so it loads for me with no problem. I still wonder why we had different experiences with this, but anyway, it works well enough now...aaronchttps://www.blogger.com/profile/15213742152099652024noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-78884876109487059802012-03-23T10:19:34.734-05:002012-03-23T10:19:34.734-05:00It appears that ngen is not working at all on my s...It appears that ngen is not working at all on my system. A typical run is timed as follows whether I use ngen or not:<br /><br />real 0m8.634s<br />user 0m0.031s<br />sys 0m0.000s<br /><br />I tried various things to get the native images working and then I ran fuslogvw.exe to see what was happening. Basically my system is not finding the native images. I'll try to look into this and see if I can find the cause.aaronchttps://www.blogger.com/profile/15213742152099652024noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-67394636738687884222012-03-21T16:11:41.871-05:002012-03-21T16:11:41.871-05:00Can you give me a sense of the times you are seein...Can you give me a sense of the times you are seeing, ngnen'd and not? The speedup I (and a few others) have gotten from this is substantial. I don't think I was doing anything special, just the obvious.David Millerhttps://www.blogger.com/profile/07657040519395296684noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-676822905706514992012-03-21T15:16:24.453-05:002012-03-21T15:16:24.453-05:00Ok, thanks. Unfortunately, I'm still not noti...Ok, thanks. Unfortunately, I'm still not noticing much of a speed up on my machine. It actually takes about 9 seconds to run the example above. I wonder what I'm doing wrong. It would be great if I could get clojure-clr to load faster because then I could justify using it in some of my projects at work.aaronchttps://www.blogger.com/profile/15213742152099652024noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-35669040517212608642012-03-20T17:38:51.619-05:002012-03-20T17:38:51.619-05:00I was using the master branch at that time, most l...I was using the master branch at that time, most likely. Some flavor of 1.4-master-SNAPSHOT. I was using Java Client, most likely. <br /><br />Re punit, two solutions: (1) It's only used in the Clojure.Test project -- just delete it from your solution if you aren't planning to test. (2) Install it to Clojure.Test using NuGet. (My preferred approach.)<br /><br />-DavidDavid Millerhttps://www.blogger.com/profile/07657040519395296684noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-78926920255898219632012-03-20T17:06:25.489-05:002012-03-20T17:06:25.489-05:00What version of ClojureCLR were you using for this...What version of ClojureCLR were you using for this? I am using 1.3 and I am definitely getting much higher start-up times.<br /><br />By the way, when I tried to build the github master branch, I am missing pnunit.framework. Maybe this DLL could be posted as a github download?<br /><br />Thanks so much for your work by the way!aaronchttps://www.blogger.com/profile/15213742152099652024noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-81383930479546413412012-02-18T13:49:03.538-06:002012-02-18T13:49:03.538-06:00At present, I'm rewriting all the code gen of ...At present, I'm rewriting all the code gen of the ClojureCLR compiler to see if I can remove some inefficiencies forced on the implementation by the use of the DLR. (Specifically, that DLR can only generate static methods, forcing an extra method call from instance to static on every Clojure IFn invoke.) Once I complete that (succesfully or not), I'll be looking at Mono.David Millerhttps://www.blogger.com/profile/07657040519395296684noreply@blogger.comtag:blogger.com,1999:blog-4262147391488425950.post-18628231349892063642012-02-18T11:43:15.641-06:002012-02-18T11:43:15.641-06:00Interesting read -- I'd be very interested in ...Interesting read -- I'd be very interested in similar optimisations when using mono.Anonymoushttps://www.blogger.com/profile/18194406258570710148noreply@blogger.com