From 2be07212367d86bd9393d326bcee3d73c45c3c83 Mon Sep 17 00:00:00 2001 From: ringabout <43030857+ringabout@users.noreply.github.com> Date: Wed, 15 Oct 2025 14:22:27 +0800 Subject: [PATCH] fixes vtable documentation in tut2 (#24304) ref https://forum.nim-lang.org/t/12537#77311 --- doc/tut2.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/tut2.md b/doc/tut2.md index 94434a84c8..19f9772752 100644 --- a/doc/tut2.md +++ b/doc/tut2.md @@ -347,10 +347,12 @@ As the example demonstrates, invocation of a multi-method cannot be ambiguous: Collide 2 is preferred over collide 1 because the resolution works from left to right. Thus `Unit, Thing` is preferred over `Thing, Unit`. -**Performance note**: Nim does not produce a virtual method table, but -generates dispatch trees. This avoids the expensive indirect branch for method -calls and enables inlining. However, other optimizations like compile time -evaluation or dead code elimination do not work with methods. +**Performance note**: Nim generates dispatch trees for methods by default. +With `--experimental:vtables`, it also provides an option to generate +a virtual method table for methods, +which tends to produce better performance in general, +especially for deep object hierarchies. +However, other optimizations like compile time evaluation or dead code elimination do not work with methods. Exceptions