Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-26 Thread Aleksey Yeshchenko
This ^ It’s an absolutely beautifully written library by Martin Thompson, my go-to for years if I’m ever asked for an example of a Java codebase to study. I have read it essentially entirely, and more than once, and it makes me feel a little happier but also inadequate every time I do. It does

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Benedict
Nope, my awareness of Agrona predates Branimir’s proposal, as does others. Aleksey intended to propose its inclusion beforehand also.If all we’re getting is lock striping, do we really need a separate library?On 25 May 2023, at 19:33, Jonathan Ellis wrote:Let's not fall prey to status quo bias, n

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Jonathan Ellis
Fair enough. Yes, my thought was if we're going to use fastutils concurrent we might as well use them for single threaded use cases rather than having both floating around, but, if we're in love with Agrona buffers I'm fine with both. On Thu, May 25, 2023 at 11:29 AM David Capwell wrote: > Agro

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Jonathan Ellis
Let's not fall prey to status quo bias, nobody performed an exhaustive analysis of agrona in November. If Branimir had proposed fastutils at the time that's what we'd be using today. On Thu, May 25, 2023 at 10:50 AM Benedict wrote: > Given they provide no data or explanation, and that benchma

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Benedict
I’m far less inclined to take that approach to fundamental libraries, where quality is far more important than presentation.On 25 May 2023, at 17:29, David Capwell wrote:Agrona isn’t going anywhere due to the library being more than basic collections.Now, with regard to single-threaded collection

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread David Capwell
Agrona isn’t going anywhere due to the library being more than basic collections. Now, with regard to single-threaded collections… honestly I dislike Agrona as I always fight to avoid boxing; carrot was far better with this regard…. Didn’t look at the fastutil versions to see if they are better

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Benedict
Given they provide no data or explanation, and that benchmarking is hard, I’m not inclined to give much weight to their analysis.Agrona was favoured in large part due to the perceived quality of the library. I’m not inclined to swap it out without proper evidence the fastutils is both materially fa

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Jonathan Ellis
There's about a dozen uses of agrona so far, plus a few more in test code, almost all of which are SAI. Porting over won't be hard. On Thu, May 25, 2023 at 10:33 AM Dinesh Joshi wrote: > > On May 25, 2023, at 6:14 AM, Jonathan Ellis wrote: > > > > Any objections to adding the concurrent wrappe

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Jonathan Ellis
Try it out and see, the only data point I have is that the company who has spent more effort here than anyone else I could find likes fastutil better. On Thu, May 25, 2023 at 10:33 AM Dinesh Joshi wrote: > > On May 25, 2023, at 6:14 AM, Jonathan Ellis wrote: > > > > Any objections to adding the

Re: Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Dinesh Joshi
> On May 25, 2023, at 6:14 AM, Jonathan Ellis wrote: > > Any objections to adding the concurrent wrapper and switching out agrona for > fastutil? How does fastutil compare to agrona in terms of memory profile and runtime performance? How invasive would it be to switch?

Agrona vs fastutil and fastutil-concurrent-wrapper

2023-05-25 Thread Jonathan Ellis
Hi all, We've been using agrona for almost a year and it's a huge improvement over boxing everything. But it's limited to single thread use cases. Fastutil is an alternative that has a concurrent wrapper: https://github.com/vigna/fastutil https://github.com/trivago/fastutil-concurrent-wrapper B