1,080 karma · joined April 19, 2013
tl;dr: In JDk 25, filling a large array of references with objects living in a different heap region is extremely slow when using G1 GC as opposed to parallel GC. Solution: Move to Java 26. Or increase G1HeapRegionSize.
Details:
They used Amazon Corretto as JDK. When Arrays.fill() was called with UseG1GC and UseParallelGC, the former was really, really slow.
Then they go on to give an ARM64 primer (because they ran it on an Apple M4 Max).
The part where they mention g1BarrierSetAssembler_x86.cpp and g1BarrierSetAssembler_aarch64.cpp is where at least some readers get lost. They are essentially saying that the logic (for both x86 and ARM64) is the same. The reason why only those two files matter for this test, I believe, comes down to JEP 304[1]. Just accept it and continue reading. (And validate it later if you want to.)
They list around twelve lines of ARM instructions that matter for this test - cheat sheet, essentially.
The three lines of actually generated ARM instructions are shown then for parallel GC (the much faster one in this case).
They explain what a write barrier is (basically GC bookkeeping). So as a result, there are three instructions, but they are neat and tight. Also, we see that eight elements are filled in each iteration of the loop which fills the arrays.
Then, they show what was generated for G1 GC. And it is indeed too long. Around 20 instructions. However, some of them shouldn't have been executed because of three exit conditions. They explain why none of them fired.
They prove that by subtracting eight from the humongous threshold size, it is allocated to an Eden/young region and the problem vanishes because one of the three exit conditions is triggered thus.
Then, they show that it is a problem that increases almost linearly (my guess, based on the numbers) with the array size- so the larger the array size is, the more the time delay!!
Finally, the solution: JDK 26 took care of this issue. They also point to JEP 522 (I didn't go through it yet). If you have an older version, use the G1HeapRegionSize flag if you can do so.
That is it, essentially. Definitely long, but well-written, based on actual testing.
The error-tagged union is PgResult<bool> - which means it contains bool as the result if things go well. (The other part in the union is of course the error.)
In the original function also, it is returning a boolean: "bool has_subclass".
So anyway you have to check for the boolean as part of the logic. That is what it is doing.
Anti-pattern: Regarding the 2023 e-book edition, I do not see a way to buy it from the site, or even a link to buy.
From the quoted snippet from the original article, purportedly AI-generated:
> Not a tutorial. Not an ORM. Actual SQL
From my comment:
> Not stock options. Do not gamble, your life is passing you by.
> Not titles, unless you have a clear plan to leverage your title into a better paying job.
> Not "job safety" - it is never safe. You being in an in-demand area is your job safety.
The part about veering constantly to navigate the maze of internal politics is fascinating. The compromises he had to make, like not being able to put in on Github initially. The easy victories, like making TypeScript open source.
The long road to success. The obligatory advice for people writing new programming languages (Hint: Mostly, don't.). His opinion about creating a new language for AI (I agree with his insight, but still think it is possible).
Overall, well worth watching.
Being a non-Christian and it being Christmas time, I am sharing one verse from the New Testament that is, in my opinion, useful - or at the very least, insightful - to anyone, regardless of religion.
Luke 16:10: He who is faithful in a very little thing is faithful also in much; and he who is unrighteous in a very little thing is unrighteous also in much.
The word "them" implied plural. I was looking for the dog and something else. Thanks.
Where is the image given along with the prompt? If I didn't miss it: Would have been nice to show the attached image.
Wondering how they created that baseline. Was it with fMRI data (which has deviance from actual data, as pointed out)? Or was it through other means?
* The entertainment industry will be transformed drastically. Music and movies will be transformed by AI to such an extent that the next generation will find it hard to believe how the industry operated.
* The moonshot will be biological research and research in general. When a breakthrough happens, it will transform our health for the better in astonishing ways.
* In terms of direct adoption, the urban-rural divide is vast.
* Less democratic countries will have an advantage over the democratic countries in terms of fast execution, unless the latter manage to integrate private-public operations effectively.
* I've liked Mary Meeker's reports since the heydays of TechCrunch. This report has a lot of details that I did not know. Nevertheless, I didn't see a single point that stood out.
>Used "dictionary learning"
>Found abstract features
>Found similar/close features using distance
>Tried amplifying and suppressing features
Not trying to be snary, but sounds mundane in the ML/LLM world. Then again, significant advances have come from simple concepts. Would love to hear from someone who has been able to try this out.
API Guide:
https://github.com/google-ai-edge/model-explorer/wiki/4.-API...
Custom Nodes - User Guide:
https://github.com/google-ai-edge/model-explorer/wiki/2.-Use...
Finding: medieval red squirrel strains were closer to medieval human strains than to modern red squirrel strains.
Inference: In medieval England, leprosy spread between red squirrels and people.
Problem with the inference: If they used modern human strains too and then compared them all, it would have been a complete study.
Are modern red squirrel strains closer to modern human strains than to medieval red squirrel strains? What kind of differences are there? Is it that they evolved independently from medieval times to modern times and thus appear different? Lots of questions are unanswered.
A macabre kinship that involved spearing her calf. And eventually, killing the female whale herself while trying to kill her calf again.
With the recent advancements in AI and space technology, space militarization may become the top existential threat we as human beings face, probably topping both climate change and the depletion of essential resources.
[1] https://direct.mit.edu/books/book-pdf/2369358/book_978026237...
The point I was trying to make was that this was titled in Aptiv's Q1 presentation [1] as "APTIV EQUITY INTEREST TO BE REDUCED FROM 50% TO 15%". That is, they will offload most of the control to Hyundai. Immediately, Aptiv shares rose. So for some reason, this is seen as a good thing by Aptiv shareholders.
My point was and is: Considering the above aspect, it will be interesting to see how Hyundai will make use of it.
[1] https://s22.q4cdn.com/336558720/files/doc_presentations/2024...
Again, it returns to the artisans,but mid-paragraph (as is typical in that article), switches to battles again, and returns yet again to silk and artisans. At last, it connects the battles and the silk together.
This is probably why it appears very hard to read. Especially, the mid-paragraph context switches continuing to the subsequent paragraph.
Nevertheless , a fascinating read.
Anything which requires only massive data processing, does not need AI.
Regarding the adoption: The crux is mentioned in the article well. You are building on top of faulty systems. However great the AI model is, you are given faulty data to process. It will not end well.
In the order of preference:
Qt (C++), Swing (Java), and Visual Component Library (Delphi) are three tried and tested options for you.