# Funny Benchmark with Julia (no longer) at the bottom

**URL:** https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611
**Category:** Performance
**Tags:** benchmark
**Created:** [October 5, 2023, 1:12pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611 "2023-10-05T13:12:30Z")
**Posts on this page:** 20
**Page:** 7

<div class="post-metadata">

### Author: ![algunion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/algunion/32/51630_2.png) [@algunion](https://discourse.julialang.org/u/algunion)
#### Post date: [October 12, 2023, 11:46am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/121 "2023-10-12T11:46:10Z")

</div>

But that was done by someone working on the Go implementation, not by the owner.

Also - if that is merged Julia time will be like: 1 compilation time + 2 runs of the same problem

Here:

> <https://github.com/jinyus/related_post_gen/pull/204#issuecomment-1759440955>
>
> Notice I moved the julia type assertion into the compute time because it's not i…/o.

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [October 12, 2023, 12:11pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/122 "2023-10-12T12:11:00Z")

</div>

I’m fine with just remove that runtime dispatch and use `UInt32` honestly… we’re already slower, might as well at least make source code cleaner

---

<div class="post-metadata">

### Author: ![algunion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/algunion/32/51630_2.png) [@algunion](https://discourse.julialang.org/u/algunion)
#### Post date: [October 12, 2023, 12:20pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/123 "2023-10-12T12:20:00Z")

</div>

I don’t want to be rude, but the issue raised in that PR is fueled by blunt ignorance about Julia.

I don’t impose that Go developers should be knowledgeable about Julia - but if they jump and change the code, then they better be 🙂

I don’t think we should change the source code because someone who does not understand the language has some issues.

---

<div class="post-metadata">

### Author: ![algunion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/algunion/32/51630_2.png) [@algunion](https://discourse.julialang.org/u/algunion)
#### Post date: [October 12, 2023, 12:44pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/124 "2023-10-12T12:44:31Z")

</div>

Reconciliation took place:

> <https://github.com/jinyus/related_post_gen/issues/205#issuecomment-1759536087>
>
> It seems like I kicked of a conversation about whether the first call to the rel…ated func can stay outside of the measured time or not. 
> 
> Original conversation was here:
> https://github.com/jinyus/related\_post\_gen/pull/204

---

<div class="post-metadata">

### Author: ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)
#### Post date: [October 12, 2023, 1:04pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/125 "2023-10-12T13:04:58Z")

</div>

Benchmarks comparing languages should have two phases:

1. The problem is released and people have 1 hour to provide a solution, using any tool. This is the first benchmark.

2. Let people do whatever they want and see how fast languages can get with unlimited time and effort. This is the second benchmark,

The language true utility will probably be somewhere in the middle.

---

<div class="post-metadata">

### Author: ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)
#### Post date: [October 12, 2023, 1:34pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/126 "2023-10-12T13:34:08Z")

</div>

Thanks, again this scales worse than Go, same as for non-concurrent, so maybe not surprising. But why does Julia scale worse, or rather way does Go do well?

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [October 12, 2023, 1:36pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/127 "2023-10-12T13:36:13Z")

</div>

This is actually a cool idea, you could just plot time of submission after release against benchmark speed. Then you could see how much time you approximately need to spend for performance in each language. But it’s of course quite confounded by skill of developers, motivation to do well in the benchmark, how many people contribute, etc.

---

<div class="post-metadata">

### Author: ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)
#### Post date: [October 12, 2023, 1:53pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/128 "2023-10-12T13:53:53Z")

</div>

It would be totally unfair for other languages: it is well known that Julia users can spend a lot of time to optimize other’s code while they are importing packages

---

<div class="post-metadata">

### Author: ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)
#### Post date: [October 12, 2023, 2:15pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/129 "2023-10-12T14:15:35Z")

</div>

Let’s define POWV(L), AKA “pack of wolves”-ness, the function that associates with a language L the ability/ferocity/speed of its community to optimize to the bone every piece of algorithm that is put in front of it.

The new metric proposed above gives a good estimate of the POWV function for each language.

Whether large values of POWV(L) can be said to be positive markers for the language L remains to be discussed.

My manager said to me this morning, looking over my shoulder at my discourse window, that he was wondering about Julia’s productivity: “It’s clearly a hyper-productive language, but it doesn’t seem to help focus attention on paid tasks”.

---

<div class="post-metadata">

### Author: ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)
#### Post date: [October 12, 2023, 3:28pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/130 "2023-10-12T15:28:38Z")

</div>

This is not our problem other languages are not cool 🕶

---

<div class="post-metadata">

### Author: ![Syx\_Pek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/syx_pek/32/6364_2.png) [@Syx\_Pek](https://discourse.julialang.org/u/Syx_Pek)
#### Post date: [October 13, 2023, 2:05pm UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/131 "2023-10-13T14:05:27Z")

</div>

I fixed up my method above, and it should be faster than the `MVector` approach, even without the `MVector`.

Let’s see if it would suffice: [Improve Speed (Julia) by SyxP · Pull Request #227 · jinyus/related\_post\_gen · GitHub](https://github.com/jinyus/related_post_gen/pull/227)

Edit: It was not faster on their machine ☹

---

<div class="post-metadata">

### Author: ![algunion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/algunion/32/51630_2.png) [@algunion](https://discourse.julialang.org/u/algunion)
#### Post date: [October 17, 2023, 1:32am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/132 "2023-10-17T01:32:43Z")

</div>

Impostor syndrome crisis (in a good way) after looking at [this](https://github.com/LilithHafner/Jokes/tree/main/SuperDataStructures.jl).

Thank you, @Lilith.

Also, Julia + `StaticArrays` is ~2.95 s. But the owner does not allow the usage of `StaticArrays`: I don’t think bad faith is involved - maybe just some lack of understanding of Julia’s ecosystem.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/a/5/a5de8ea7a8e3d2999c40dbf92887896a85a7d26f.png)

---

<div class="post-metadata">

### Author: ![Tarny\_GG\_Channie](https://avatars.discourse-cdn.com/v4/letter/t/3bc359/32.png) [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)
#### Post date: [October 17, 2023, 3:58am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/133 "2023-10-17T03:58:38Z")

</div>

I’d say that while some communities optimizes like a pack of wolves, the Julia community optimizes like a pack of lions. Each expert contributes to their aspect of optimization until Julia is hellishly optimized. Sometimes this optimization comes from a library, where other “lions” already optimized it. And sometimes we contribute to each other without even talking!

---

<div class="post-metadata">

### Author: ![torrance](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torrance/32/38990_2.png) [@torrance](https://discourse.julialang.org/u/torrance)
#### Post date: [October 17, 2023, 5:10am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/134 "2023-10-17T05:10:42Z")

</div>

The exclusion of StaticArrays is unfortunate because its use really is idiomatic in writing Julia code.

I’d be curious what kind of benchmark times are possible in code that is still largely or wholly iodiomatic (for some reasonable definition). i.e. code that uses the standard toolbox of packages and which otherwise avoids strange optimization hacks.

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [October 17, 2023, 5:44am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/135 "2023-10-17T05:44:13Z")

</div>

Not sure how I feel about arms race, still want StaticArrays back because it seems reasonable to other languages contributors except repo owner

---

<div class="post-metadata">

### Author: ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)
#### Post date: [October 17, 2023, 6:18am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/136 "2023-10-17T06:18:56Z")

</div>

It’s good publicity, It shows the Julia’s strengths.

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [October 17, 2023, 6:47am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/137 "2023-10-17T06:47:11Z")

</div>

not really, I can at least think two ways this might not be ideal: onlookers would think this is some superiority complex of our community (to go so far as to make a specialized package just to be at the top).

or another possibility is Go or Rust also implement this and we will be slower again. In this case everyone is writing so much (first glance) incomprehensible code there’s no bonus points for Julia

It’s not a very stable point to be in, I don’t like arms race I guess

---

<div class="post-metadata">

### Author: ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)
#### Post date: [October 17, 2023, 7:12am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/138 "2023-10-17T07:12:54Z")

</div>

On the other hand I think @Lilith 's example highlights one of the core strengths of Julia: Achieving absolute performance while still having highlevel code. Yes the library might be involved and hard to understand, but the code solving the problem is not more complicated than in the ‘normal’ Julia version. So from the perspective of an user this is quite the optimum I’d say! (And if the superiority complex of the communities means you get ultra-fast libraries for every problem by just posting a benchmark to their discourse, then this is even more of a bonus 😆 )

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [October 17, 2023, 7:32am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/139 "2023-10-17T07:32:28Z")

</div>

> [@abraemer](#):
>
> but the code solving the problem is not more complicated than in the ‘normal’ Julia version.

Sorry, you can’t look at that SuperDataStructure package and tell me that’s a generally useful package we should put into General Registry and people would use it.

Because of such, you can’t say the “user” code is simple, someone can just put the entire Related.jl into a package and user code is just `main("posts.json")` – that’s not useful way of looking at this I feel

---

<div class="post-metadata">

### Author: ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)
#### Post date: [October 17, 2023, 7:40am UTC](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611/140 "2023-10-17T07:40:21Z")

</div>

There are pros and cons in every kind of publicity.  
Languages are tools, I am using Julia because I find it solve my problems with the least amount of friction. Since most of these languages use LLVM as backend you will get more or less the same performance when you optimize them with the same algorithms. Similar thing can be achieved with Rust or zig or… the point is with what level of abstraction those languages achieve this. I am looking forward to see the same optimized techniques fruits how much complexity in those languages.

[Previous page](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611.md?page=6)

[Next page](https://discourse.julialang.org/t/funny-benchmark-with-julia-no-longer-at-the-bottom/104611.md?page=8)
