Cita:
Empezado por Casimiro Notevi
No conozco ese programa, pero lo mismo lee todo el registro y lo almacena en una tabla de sqlite, por ejemplo, luego trabaja con esa tabla, por lo que la búsqueda (campos indexados) es instantánea.
Por decir algo 
|
Es muy probable que así sea

.
Supongo que tendrá monitoreados los posibles cambios del registro para reducir la carga de la aplicación. El
regedit tarda un tiempo parecido al código recursivo del mensaje #12 en realizar las búsquedas.
Como dato adicional, es muy sencillo implementarle una búsqueda de contenido parcial, sólo hay que modificar el condicional:
Código Delphi
[-]
...
if Copy(SValues[i], 1, Length(aValueName)) = aValueName then
begin
...
Saludos.
Edito: Casi me olvido...
Nelson: Sin ninguna duda el código es más óptimo con la modificación que sugeriste. Pero lamentablemente la ganancia de tiempo es casi imperceptible. (Tal vez la mejora venga implementando algo como lo que comenta
Casimiro)