Just wanted to stop by and update this thread with the latest
information. I just released Stencil 0.3, at
http://github.com/davidsantiago/stencil and it contains many
performance improvements. I have pushed the benchmarks I use to test
it, including an adaptation of yours, to
http://github.com/davidsantiago/mustachequerade; the readme has an
example run. Performance of course depends on the templates and data,
but 0.3 ranges from nearly as fast as your mustache to 2x the runtime.

In particular, for the benchmark you posted, I now get runtimes for a
single template render of 13us in mustache.clj vs. 25us in Stencil.
I'm not satisfied with those numbers, and will continue to push them
lower in future versions, but the 10x difference in runtime is clearly
no longer the case.

  David

On Wed, Jul 11, 2012 at 8:50 PM, Shen, Feng <shen...@gmail.com> wrote:
> Yes, you are right.  Stencil did a very good job.
> I only implement a subset.  Test code .   "Set Delimiter" and "lambdas" and
> "Dotted Names" are not implemented.
>
> The algorithm of this implementation is borrowed from Mustache.js.
> I read the code,  It's brilliant.
>
> I'v used Mustache in several projects. I like it. It's simple and brilliant.
> "Set Delimiter" and "lambdas" are never used.  This is why they are not
> implemented currently. I will implement the whole Spec when I find the time.
>
>
> On Thu, Jul 12, 2012 at 9:26 AM, Anthony Grimes <disciplera...@gmail.com>
> wrote:
>>
>> Stencil is spec compliant (the tests actually run against the spec) while
>> this implementation is not. A major goal behind stencil is to be totally
>> spec compliant and as fast as possible. However, implementing the slow parts
>> of the spec is important too.
>>
>>
>> On Wednesday, July 11, 2012 6:28:23 PM UTC-5, Feng Shen wrote:
>>>
>>> From http://mustache.github.com/, I only notice clostache, which is a
>>> little slow.
>>> I have not noticed stencil, if I do, probability, I will not do one
>>> myself. It's pretty fast.
>>> My implementation seems faster than stencil, in a test run, up to 10x.
>>> Test code:
>>> https://github.com/shenfeng/mustache.clj/blob/master/test/me/shenfeng/perf_bench.clj
>>> It seems stencil is more feature rich than mine.  For example, I did not
>>> implement "Set Delimiter".
>>>
>>>
>>> On Wednesday, July 11, 2012 9:45:51 PM UTC+8, Baishampayan Ghose wrote:
>>>>
>>>> > I did yet another {{mustache}} implementation for Clojure
>>>> >
>>>> > https://github.com/shenfeng/mustache.clj
>>>> >
>>>> > I did it because I need a faster one when I am doing Rssminer . And I
>>>> > dit
>>>> > it.
>>>> > By the way, Rssminer is yet another RSS reader, but written in
>>>> > Clojure.
>>>> >
>>>> > Usage:
>>>> >
>>>> > [me.shenfeng/mustache "0.0.4"]
>>>> >
>>>> > (:use me.shenfeng.mustache)
>>>> >
>>>> > (deftemplate template "{{template}}")
>>>> > (to-html template {:you-data "data"}) ;; returns String
>>>> >
>>>> > Let me know if you have any ideas or questions.
>>>>
>>>> Shen,
>>>>
>>>> Very nice work. Have you benchmarked your mustache lib with stencil?
>>>> It would be an interesting comparison.
>>>>
>>>> Regards,
>>>> BG
>>>>
>>>> --
>>>> Baishampayan Ghose
>>>> b.ghose at gmail.com
>>
>> --
>> 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 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 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

Reply via email to