# Ali Dehghan - Kemikit

A chemical romance bursts into the IT world

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Infinite Precision

DevFeed: [Infinite Precision](<https://devfeed.tech/articles/infinite-precision-24837.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/12/18/infinite-precision>)

Author: Alimate

Published: 2020-12-18T00:00:00Z

Content type: opinion

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [measurement](<https://devfeed.tech/tags/measurement.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [precision](<https://devfeed.tech/tags/precision.md>), [science](<https://devfeed.tech/tags/science.md>)

### AI overview

The article reflects on measurement uncertainty, explaining that measurements are approximations whose accuracy depends on the measuring device. It applies this idea to measuring code execution time and notes that such measurements can be affected by multiple factors.

### Source excerpt

The art, science, and pitfalls of measurement!

## HotSpot Intrinsics

DevFeed: [HotSpot Intrinsics](<https://devfeed.tech/articles/hotspot-intrinsics-24836.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/12/10/hotspot-intrinsics>)

Author: Alimate

Published: 2020-12-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article explains how intrinsic functions let the HotSpot JVM replace ordinary Java method implementations with optimized compiler intrinsics. It examines delegated logarithm implementations, benchmarks their throughput, and discusses how Java 16 changed the relevant OpenJDK implementation and annotation.

### Source excerpt

How Does the HotSpot JVM Intrinsify Some Method Implementations?

## On Generating Identity Hash Codes

DevFeed: [On Generating Identity Hash Codes](<https://devfeed.tech/articles/on-generating-identity-hash-codes-24843.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/7/15/hash-code>)

Author: Alimate

Published: 2020-07-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Randomizer](<https://devfeed.tech/topics/randomizer.md>), [Algorithms, Complexity](<https://devfeed.tech/topics/algorithms-complexity.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [cas](<https://devfeed.tech/tags/cas.md>), [generate](<https://devfeed.tech/tags/generate.md>), [hash](<https://devfeed.tech/tags/hash.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [memory](<https://devfeed.tech/tags/memory.md>), [retry](<https://devfeed.tech/tags/retry.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

This tutorial explains how the HotSpot JVM generates identity hash codes in Java. It examines several strategies, including Park-Miller/Lehmer random number generation, memory-address-based values, a constant value, and sequential numbers, while discussing atomic updates and contention.

### Source excerpt

Have you ever wondered how does the HotSpot JVM generate identity hashcodes?

## False Sharing

DevFeed: [False Sharing](<https://devfeed.tech/articles/false-sharing-24842.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/5/1/false-sharing>)

Author: Alimate

Published: 2020-05-01T00:00:00Z

Content type: article

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Latency](<https://devfeed.tech/topics/latency.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [latency](<https://devfeed.tech/tags/latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [multithreading](<https://devfeed.tech/tags/multithreading.md>), [padding](<https://devfeed.tech/tags/padding.md>)

### AI overview

This article explains how false sharing in multithreaded JVM applications can increase latency and throughput costs. It uses benchmarks and object-layout analysis to show how padding can isolate counters and improve performance.

### Source excerpt

Measuring false-sharing effect on latency and throughput

## Thread Local Randoms in Java

DevFeed: [Thread Local Randoms in Java](<https://devfeed.tech/articles/thread-local-randoms-in-java-24841.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/4/24/thread-local-random>)

Author: Alimate

Published: 2020-04-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Randomizer](<https://devfeed.tech/topics/randomizer.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [atomics](<https://devfeed.tech/tags/atomics.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [java](<https://devfeed.tech/tags/java.md>), [lock-free](<https://devfeed.tech/tags/lock-free.md>), [performance](<https://devfeed.tech/tags/performance.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This article examines thread-local random number generation in Java. It compares a shared generator, a simple thread-local implementation, and the built-in approach, explaining how contention, atomic operations, synchronization, and shared mutable state affect throughput.

### Source excerpt

Benchmarking regular randoms against thread-local ones!

## On Fair & Scalable Locks

DevFeed: [On Fair & Scalable Locks](<https://devfeed.tech/articles/on-fair-scalable-locks-24840.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/3/7/scalable-fair-lock>)

Author: Alimate

Published: 2020-03-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [atomic](<https://devfeed.tech/tags/atomic.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [latency](<https://devfeed.tech/tags/latency.md>), [locks](<https://devfeed.tech/tags/locks.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

This tutorial explains test-and-set (TAS) locks and test-test-and-set (TTAS) locks, then compares them with a multithreaded benchmark. The supplied text reports that TTAS has better throughput and lower-jitter latency than TAS in that benchmark.

### Source excerpt

Let's implement a fair and highly scalable lock!

## Time Travel with JVM

DevFeed: [Time Travel with JVM](<https://devfeed.tech/articles/time-travel-with-jvm-24838.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/2/23/time-travel-jvm>)

Author: Alimate

Published: 2020-02-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Finagle](<https://devfeed.tech/topics/finagle.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [bytecode](<https://devfeed.tech/tags/bytecode.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [object](<https://devfeed.tech/tags/object.md>), [process](<https://devfeed.tech/tags/process.md>)

### AI overview

This article demonstrates how a Java object can be allocated without calling its constructor. It explains that the object receives default field values during JVM initialization, while constructor-based initialization is skipped, and cautions against using the demonstrated approach.

### Source excerpt

Let's allocate a Java object without calling its constructor!

## Java Records: A Closer Look

DevFeed: [Java Records: A Closer Look](<https://devfeed.tech/articles/java-records-a-closer-look-24839.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/2/9/java14-records-in-depth>)

Author: Alimate

Published: 2020-02-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [bytecode](<https://devfeed.tech/tags/bytecode.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [java](<https://devfeed.tech/tags/java.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A technical tutorial examines how Java 14 Records are represented under the hood, including their generated classes, accessors, constructors, methods, and bytecode. It also compares Records with Kotlin data classes and Scala case classes.

### Source excerpt

How records are represented under the hood?

## Java Records: An Introduction

DevFeed: [Java Records: An Introduction](<https://devfeed.tech/articles/java-records-an-introduction-24835.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/1/31/java14-records>)

Author: Alimate

Published: 2020-01-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [java](<https://devfeed.tech/tags/java.md>)

### AI overview

An introduction to Java 14 Records, a preview feature that provides compact syntax for immutable data-holder classes. The article explains generated methods, preview-feature flags, custom constructors, methods, and field limitations.

### Source excerpt

A sneak peek at Records which are going to previewed in Java 14

## Lock Striping

DevFeed: [Lock Striping](<https://devfeed.tech/articles/lock-striping-24834.md>)

Original publisher: [Read original article](<https://alidg.me/blog/2020/1/11/lock-striping>)

Author: Alimate

Published: 2020-01-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ali Dehghan - Kemikit](<https://devfeed.tech/sources/ali-dehghan-kemikit.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [locks](<https://devfeed.tech/tags/locks.md>), [performance](<https://devfeed.tech/tags/performance.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>)

### AI overview

This tutorial explains how to implement a thread-safe concurrent hashtable using plain locks. It covers bucket initialization, resizing, key hashing, updates, and coarse-grained synchronization, while introducing finer-grained synchronization for comparison.

### Source excerpt

Let's see how well a fine-grained synchronized concurrent data structure performs compared to its coarse-grained counterpart