# Julia can be better at doing web: A benchmark

**URL:** <https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300>\
**Category:** Web Stack\
**Tags:** performance, benchmark, sockets, http\
**Created:** [August 28, 2023, 4:47pm UTC](https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300 "2023-08-28T16:47:14Z")\
**Posts on this page:** 1\
**Showing post:** 25

<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:** [September 24, 2023, 8:29pm UTC](https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300/25 "2023-09-24T20:29:54Z")

</div>

> [@Pangoraw](#):
>
> EDIT: I did not look at right code! The new PQ version indeed uses a pool ([here](https://github.com/pankgeorg/FrameworkBenchmarks/blob/pg/julia-new/frameworks/Julia/Http.jl/Pool.jl)).

While a “web benchmark” under discussion here, partly DB related, then connecting can possibly be improved.

I didn’t look at the pool functionality, but is it redundant with new feature in just released PostgreSQL 16, or its libpq (note, latest libpq might work for older PostgreSQL, it usually does, maybe, maybe not, for this too? Pg\_pool is also available, seems not partially redundant project): [PostgreSQL: Documentation: 16: E.2.&nbsp;Release 16](https://www.postgresql.org/docs/16/release-16.html)

> - Allow multiple libpq-specified hosts to be randomly selected (Jelte Fennema)  
> This is enabled with load\_balance\_hosts=random and can be used for load balancing.

FYI: It also has a number of good new features, such as more complete support for the SQL/JSON standard (I was proposing recently in another thread, to rather than serialize Julia data/arrays to BLOBs, i.e. its bytea proprietary type). Also off-topic:

> **[PostgreSQL 16 Released!](https://www.postgresql.org/about/news/postgresql-16-released-2715/)**
>
> September 14, 2023 - The PostgreSQL Global Development Group today announced the release of PostgreSQL 16, the latest version of …

> PostgreSQL 16 improves general support for text collations, which provide rules for how text is sorted. PostgreSQL 16 builds with ICU support by default, determines the default ICU locale from the environment, and allows users to define custom ICU collation rules.

Maybe ICU is new, or new by default, but it reminded my of that at least the latest ICU has e.g. “significant changes for GB18030-2022 compliance support”, i.e. for Chinese. That latest Chinese standard is slightly incompatible, I’m not sure if it affects Julia users, i.e. Unicode/UTF-8 too in some way.

> Version 23.1 of Ora2Pg, a free and reliable tool used to migrate an Oracle database to PostgreSQL, has been officially released and is publicly available for download.  
> […]  
> New command line option --lo\_import. By default Ora2Pg imports Oracle BLOB as bytea, the destination column is created using the bytea data type.

Even more off-topic (unless it helps some actual real-world users, if not benchmarks, maybe some Julia code should be off-loaded to the database, I think there’s a PL/Julia out there):

> [@PL/Julia extension ( minimal )](https://discourse.julialang.org/t/pl-julia-extension-minimal/34232):
>
> " The following is only the beginning of an example to create a new procedural language for PostgreSQL. At some point later we will have something that enables user defined functions and stored procedures written in the [Julia programming language](https://julialang.org/) to actually execute." [Creating a PostgreSQL procedural language - Part 1 - Setup - 2ndQuadrant | PostgreSQL](https://www.2ndquadrant.com/en/blog/creating-a-postgresql-procedural-language-part-1-setup/) ( by Mark Wong ; February 5, 2020 ) [GitHub - pljulia/pljulia](https://github.com/pljulia/pljulia) “This is enough to build, install, and create a PL/Julia extension. While you…

It’s not one of the official, but with precompiled code could be getting increasingly relevant to use (and maybe get into PostgreSQL as official?):

> **[Chapter 42. Procedural Languages](https://www.postgresql.org/docs/16/xplang.html)**
>
> Chapter 42. Procedural Languages Table of Contents 42.1. Installing Procedural Languages PostgreSQL allows user-defined functions to be written in other languages besides …

---

_[View the full topic](https://discourse.julialang.org/t/julia-can-be-better-at-doing-web-a-benchmark/103300)._
