HN user

matt42

1,548 karma
Posts149
Comments136
View on HN
www.techradar.com 5y ago

Intel defends against AMD Ryzen 5000 with tease of 11th Gen Rocket Lake info

matt42
2pts1
matt-42.github.io 5y ago

Lithium high performance C++ HTTP server documentation

matt42
2pts0
www.open-std.org 5y ago

Pattern matching C++ proposal [pdf]

matt42
2pts0
www.techempower.com 5y ago

Lithium ranked the highest performance web application platform

matt42
99pts127
github.com 5y ago

C++17 zero-cost key value maps using POD objects as backend

matt42
2pts0
github.com 5y ago

Lithium:http_backend. Coroutine based, C++ HTTP web application framework

matt42
2pts1
chrome.google.com 5y ago

Never consent to major GDPR consent management platforms

matt42
2pts0
github.com 6y ago

Unifying MySQL, SQLite, PostgreSQL Blocking/Non Blocking Mode in One Single API

matt42
2pts0
github.com 6y ago

Show HN: Lithium::SQL C++17, Header Only MySQL and SQLite Connectors and ORM

matt42
2pts0
github.com 6y ago

Show HN: li:http_backend a Simple and Modern C++17 Web Framework

matt42
1pts1
github.com 8y ago

Show HN: Moustique – C++14 coroutine-based non-blocking IO on Linux

matt42
68pts31
github.com 9y ago

C++17 MetaJSON 0.1, up to 2x faster than rapidjson

matt42
4pts0
github.com 9y ago

Show HN: Iod::metajson, a C++17 lightweight JSON de/serializer

matt42
1pts0
www.youtube.com 9y ago

More than Real Time (200 FPS) Optical Flow with Video++ (video)

matt42
2pts0
sycl.tech 9y ago

Sycl.tech

matt42
2pts0
www.codeplay.com 9y ago

Early Access to the SYCL Open Standard for C++ Acceleration

matt42
1pts0
github.com 9y ago

Parsing command line with one C++14 statement

matt42
1pts0
github.com 9y ago

Simple and Modern C++14 Command Line Parsing

matt42
3pts1
www.youtube.com 9y ago

What is Quantum Annealing?

matt42
1pts0
en.wikipedia.org 9y ago

Timeline of quantum computing

matt42
1pts0
www.reddit.com 10y ago

Discussion on designing C++ image processing libraries

matt42
1pts0
siliconframework.org 10y ago

Release of the Silicon C++14 Web Framework 0.1

matt42
6pts0
www.zapcc.com 11y ago

Zapcc: a faster C++ compiler

matt42
1pts2
www.apple.com 11y ago

Apple ResearchKit

matt42
1pts0
www.slideshare.net 11y ago

High Performance Web Programming with C++14

matt42
1pts0
www.engadget.com 11y ago

Intel's made a tinier, longer-range depth camera for phones

matt42
1pts0
isocpp.org 11y ago

The C languages merge: Standard C++

matt42
7pts2
siliconframework.org 11y ago

A C++ Real-Time Broadcast App with Silicon and Websockets

matt42
12pts3
www.pcper.com 11y ago

Nvidia said GPUs will have 1TB/s memory bandwidth in 2013. (2008)

matt42
3pts0
www.kitware.com 11y ago

Kitware Releases CMake 3.2 to Advance Software Development

matt42
2pts0

To me there is 3 main points:

  - Even if it's JS, just-js make almost no use of dynamic memory allocations.
  - The authors rewrote himself a postgresql driver that support batching request.
  - it wraps high performance c++ libraries
Even if the techempower implementation is far more verbose and complex than mainstream JS framework, the amount of work behind just-js and its preformances are just impressive!

I don't understand why when you say "I have covid" people want the proof that you have it and ask you "did you do the test ?". I personally think I got it twice and never did any test. Just had symptoms I never had before in the 2 waves we had in france, just after meeting persons who also got seek at the same time. This is enough coincidence for me to think I have covid.

I also think that this reasoning may be more accurate that the official not very accurate covid tests.

Doing this reasoning myself also saved me money and the 4h waiting queue to do the test (the last thing I want to do when I have fever).

On the other side, I know people who had symptoms, tested negative (and trusted the test) and still when out to meet (and maybe contaminate) friends or colleagues.

Very interesting, I really think that http APIs are just a user management layer that could be easily abstracted away now that we can do so many things client-side.

How do you handle permissions ? or how do you pervent a clients to erase the database ?

This is really depressing. How do we stop this cynical game ? is they example of successful companies promoting the right people ?

Great that C++ compiler teams are working on reducing C++ compile time. The next great feature I think would be a game changer is caching the result of compilation (templates and binary code). A fine grained cache acting at the level of a line (or a function if it's too hard) would save an incredible amount of time to C++ devs, while also simplifying build systems. This would also stop engineers from losing days trying to speedup their build.

Is there any doc about how this caching is implemented ? I still don't understand why we need to feed this dependency array to have an up to date version of the count variable.

This is the official continuous techempower benchmark, run by techempower on the exact same environment than the techempower "official rounds". The only diff I'm aware of is that there is more manual review and check for rounds than for continuous benchmarks. Here is more info about it here:

From https://www.techempower.com/blog/2018/06/06/framework-benchm...:

We have already seen tremendous social adoption of the continuous benchmarking results. For selfish reasons, we want to continue creating and posting official rounds such as today's Round 16 periodically. (Mostly so that we can use the opportunity to write a blog entry and generate hype!) We ask that you humor us and treat official rounds as the super interesting and meaningful events that they are. Jokes aside, the continuous results are intended for contributors to the project. The official rounds are less-frequent snapshots suitable for everyone else who may find the data interesting.

The frameworks are downloaded by dockerfiles provided by the framework maintainers, and since there is hundreds of frameworks, this is a bit tedious to manually get all URLs...

But anyway, I'm pretty sure all framework maintainers will rush to provide all the info Techempower need to add a link to their website..

I would say the profiler output is the best source of information. Lithium is not using black magic at all. Actually on large framework like lithium, performance problems come more from obvious errors that get hiden in the quantity of code than in code that you did not crazy optimize.

Only the profiler will tell you if there is a hidden malloc that is slowing down all the rest, or a inefficient datastructure, or ...

There is probably lot of non optimized code in lithium, it just has no impact (or if it has I still has to find it).

That said, for other kind of software (usually more CPU bound), going down to assembly or using SIMD can be the only way to get good perfs.

I think I need to write a blog post to do a retrospective on what I learned writing iod, silicon, lithium (and vpp, a small image processing lib). There is so much to tell.

Just to be short, here is my phylosophy:

   - don't think too much when you write it the first time, just do it quick. Do all the mistakes and ugly code first and then rething/rewrite things when it can actually simplify the codebase. Big refactors are much more productive and successful than big premature design thinking.
   - Only expose the complexity that the user need. Simple things should stay simple even if we can do more complex stuff. Look for simplicity everywhere.
   - Profile before optimizing, the bottleneck is never where you think it is.

For you question about metaprogramming, it is used yes. The core of the framework is build around a compile time key/value map that unroll json and get/post parameter de/serialization at compile time [1] so no dynamic dictionary involving costly malloc is needed.

[1] https://github.com/matt-42/lithium/tree/master/libraries/met...

I had a look at the video, but I don't think there is backpresure in this benchmark since there is only 512 connections max and each connections wait for the server response before sending a new request. So in other words the load generator never send more request/s that the server is able to handle. (tell me if I missunderstood backpressure)