Boost logo

Boost :

Subject: Re: [boost] Hana Views and References
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2015-06-26 10:57:57


On Thu, Jun 25, 2015 at 5:41 PM, Joel de Guzman <djowel_at_[hidden]> wrote:
> On 6/26/15 5:24 AM, Louis Dionne wrote:
>>> Faster runtime performance is also questionable, when lightweight
>>> views and reference members come into play.
>>
>>
>> Hana claims to be at least as good as Fusion runtime-wise, which is
>> backed by the benchmarks presented in the tutorial. It is possible
>> that idiomatic usage of Hana leads to worse runtime performance than
>> with Fusion, in which case the library and its idioms will have to be
>> adjusted. Like I said a few times, Hana is a new library with a new
>> paradigm, and I think we're only starting to discover how it can be
>> used (and used efficiently).
>
>
> Your tests focused on a mere subset of Fusion which is the least
> optimized: fusion::vector. Your tests do not cover other areas
> such as views, and other containers. I can imagine a case, when say
> you push_back or insert where views should shine. It's the difference
> between copy by value and pass by reference. Try doing that with large
> tuple elements (those without resources and are not efficiently
> moved). Actually, have you tried reverse with large tuples like
> bitmaps and stuff?
>
> </snip>

Hi Joel and Louis,

How about a similar analysis but for the Hana vs. Fusion
compile-times? In my experience compile-times are much (much!) more of
a problem than run-times with TMP in production code (because I can
always do something "smart" to optimize run-times, while such
optimizations are much more difficult, and much more compile-dependent
for compile-times).

I'd be nice to confirm/check Hana's compile-time improvements over
Fusion shown by the Tutorial graphs, and also to be able to guess if
we'll see similar numbers on MSVC, not just Clang (Louis already
commented that should be the case...).

Thanks.
--Lorenzo

P.S. As I said in my review, I think Hana has its place in Boost
regardless of the promised performance improvements (because of its
easier/new TMP, great SFINAE facilities, etc.). But the the improved
compile-times will essentially "force" me to use Hana if it becomes
available on MSVC, so that's a lot of extra motivation.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk