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.

Reply via email to