That sounds really nice, exactly the way one wants it too I think :-)
Am Sonntag, 8. Februar 2015 20:37:43 UTC+1 schrieb tcrayford: > > Hi Sven, > > Right, but you want to push miniprofiler further down the app than that. > For example, with datomic I have a yeller.datomic.instrumented namespace > that exports the same vars as datomic.api, but wraps them in miniprofiler > tracing. From the point of view of my application code, the only thing that > changes is that you require a different namespace, which is significantly > easier than littering trace calls everywhere. > > Does that help? > > Tom > > On Sunday, 8 February 2015 08:57:12 UTC, Sven Richter wrote: >> >> Hi Tom, >> >> I am not arguing about the performance impact here, however, it's nice to >> know there hardly is one. My only concern is that the code reader has to >> mentally parse away the trace calls, which puts a small burden on him and >> which might be less if it was in some kind of a macro, fn or metadata. >> However, I am still a clojure beginner and this was just one thing that >> came to my mind when I saw it :-) >> >> Thanks, >> Sven >> >> Am Samstag, 7. Februar 2015 22:16:04 UTC+1 schrieb tcrayford: >>> >>> Hi Sven, >>> >>> So typically I'd put that stuff *much* lower in the database layer - >>> ideally as a wrapper around whatever database driver you're using, but that >>> kind of idea is roughly right. >>> >>> I am considering releasing a set of libraries for miniprofiler that let >>> it wrap e.g. a jdbc driver, redis clients, and so on. This is a clear case >>> where having an interface or a protocol at the low level of the database >>> driver really helps. That way you'd just import the library, tell it to >>> wrap the connection and use it yourself. Would that be useful? Which >>> database are you using? >>> >>> When miniprofiler isn't on, it has pretty minimal performance impact >>> (apart from the fact that you're adding more code to your methods which can >>> have implications for the JIT) - it's just a binding load and a nil? check, >>> which is pretty quick. I leave that code in production for my app, and have >>> done since July. >>> >>> Pushing the profiling information as low in the stack as possible, and >>> leaving it on in production is a powerful combination - typically you never >>> think about profiling or tracing whilst writing your code, but it's always >>> there, even in production where you need it. >>> >>> Hope that helps, >>> >>> Tom >>> >>> On Saturday, 7 February 2015 08:21:31 UTC, Sven Richter wrote: >>>> >>>> Hi, >>>> >>>> I just tried it and it looks really useful if one wants to track down >>>> speed bumps in web apps. >>>> >>>> I wonder if I understand the usege correctly, right now I did something >>>> like this: >>>> >>>> (defn admin-page [params] >>>> (let [users (cjmp/trace "all users" (db/get-all-users (get params >>>> :filter)))] >>>> (layout/render "user/admin.html" (merge {:users users :roles >>>> available-roles} >>>> params)))) >>>> >>>> >>>> I think this blows the code and one has to remove / add the trace >>>> function everytime one wants to profile the code. >>>> Maybe it would be an improvement if one could add some metadata to >>>> functions which then would be profiled only in dev mode for example? >>>> >>>> Best Regards, >>>> Sven >>>> >>>> >>>> Am Mittwoch, 4. Februar 2015 14:21:28 UTC+1 schrieb tcrayford: >>>>> >>>>> Ack, minor date error there. >>>>> >>>>> I've been running Clojure Miniprofiler in production since July 2014, >>>>> and it's proved both very stable, and extremely useful. >>>>> >>>>> On Wednesday, 4 February 2015 13:16:43 UTC, tcrayford wrote: >>>>>> >>>>>> Clojure Miniprofiler is a simple, but effective profiling tool for >>>>>> your web application. >>>>>> >>>>>> It tells you what is slow about a web page both in production (for >>>>>> admins only), and in development, as you load the page. >>>>>> >>>>>> It's a port of the original .Net library to Clojure, utilizing the >>>>>> JavaScript and UI code that was originally written there. >>>>>> >>>>>> Read more about it here: >>>>>> >>>>>> http://yellerapp.com/opensource/clojure-miniprofiler.html >>>>>> >>>>>> And a sample performance debugging session is detailed here: >>>>>> >>>>>> http://yellerapp.com/posts/2015-02-04-miniprofiler.html >>>>>> >>>>>> I've been running Clojure Miniprofiler in production since July 2015, >>>>>> and it's proved both very stable, and extremely useful. >>>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.