xiaohongshu
xiaohongshu
cljr-performance
Optimize Cljr compiler and runtime performance. Use when optimizing emitter output, runtime collections, REPL evaluation, or leveraging .NET 10/C# 14 features. Covers Span<T>, FrozenDictionary, AggressiveInlining, benchmarking, and allocation reduction strategies.
Full skill instructions
This skill guides performance optimization for the Cljr Clojure-to-.NET compiler, targeting .NET 10 with C# 14 preview features.
| Optimization | Status | Location |
|---|---|---|
Span<T> / ReadOnlySpan<T> | ✓ | PersistentVector |
FrozenDictionary | ✓ | Protocol, MethodImplCache |
[AggressiveInlining] | ✓ | Hot paths throughout |
| Symbol/Keyword interning | ✓ | Symbol.cs, Keyword.cs |
| HAMT with SIMD PopCount | ✓ | PersistentHashMap |
| 32-way trie | ✓ | PersistentVector |
| Transient collections | ✓ | Vector, HashMap batch ops |
| Method dispatch caching | ✓ | MultiFn, Protocol |
| BenchmarkDotNet suite | ✓ | tests/Cljr.Benchmarks/ |
| Optimization | Status | Potential Use |
|---|---|---|
stackalloc | ✗ | Small temp arrays in hot paths |
ArrayPool<T> | ✗ | Reusable buffer arrays |
SearchValues<T> | ✗ | Character/byte searching |
CompositeFormat | ✗ | String formatting |
| C# 14 implicit span conversions | ✗ | Cleaner span APIs |
| AVX10.2 intrinsics | ✗ | SIMD operations |
Never optimize without benchmarks. Run existing benchmarks:
cd tests/Cljr.Benchmarks
dotnet run -c Release -- --filter "*"
Or specific benchmarks:
dotnet run -c Release -- --filter "VectorBenchmarks"
dotnet run -c Release -- --filter "*Conj*"
Use profiling or benchmark results to identify:
See reference files for specific patterns:
Re-run benchmarks and compare:
dotnet run -c Release -- --filter "YourBenchmark" --runtimes net10.0
For small, frequently-called methods:
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public T GetValue() => _value;
// Instead of creating arrays
public ReadOnlySpan<object?> ArrayFor(int i) => _tail.AsSpan();
// Span-based construction (already in PersistentVector)
public static PersistentVector Create(ReadOnlySpan<object?> items)
using System.Collections.Frozen;
// Mutable during construction
private readonly ConcurrentDictionary<Type, Cache> _impls = new();
// Frozen for fast reads
private volatile FrozenDictionary<Type, Cache>? _frozen;
public void Freeze() => _frozen = _impls.ToFrozenDictionary();
Already implemented - ensures reference equality:
// Good: reference equality after interning
if (ReferenceEquals(sym1, sym2)) { ... }
// Avoid: value equality is slower
if (sym1.Equals(sym2)) { ... }
// Slow: O(n²) allocations
var vec = PersistentVector.Empty;
foreach (var item in items)
vec = vec.Conj(item);
// Fast: O(n) with transient
var transient = PersistentVector.Empty.AsTransient();
foreach (var item in items)
transient.ConjBang(item);
return transient.Persistent();
| Area | Files |
|---|---|
| Runtime Collections | src/Cljr.Runtime/Collections/PersistentVector.cs, PersistentHashMap.cs |
| Protocol Dispatch | src/Cljr.Runtime/Protocol.cs, MultiFn.cs |
| Symbol Interning | src/Cljr.Runtime/Symbol.cs, Keyword.cs |
| Emitter | src/Cljr.Compiler/Emitter/CSharpEmitter.cs |
| Benchmarks | tests/Cljr.Benchmarks/CollectionBenchmarks.cs |
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience