Used alone, You would have to have quite a few layers to see the diff but that's not really the point; if we try to keep each procedure small and nimble, we can have faster applications overall (when we do a bunch of stuff to a bunch of stuff).
However, take a look at the Overall process' of each kind of attack. The first and the last, reach and grab the layer from the tbl directly, the second grabs the entire tbl and does a search on it...used several times the second procedure would chew up a lot of time compared to the others. Procedures one and three are fairly close, the only loss in the two is three's need to seek outside the built in Autolisp language functions (the VL extension is just that an extension, a DLL used by VL and VBA.). SO, if you can use native Autolisp functions instead of VL extensions, do it. It could save a few seconds in a large procedure. (I hope that makes sense)
To test the speed use Benchmark (theSwamp's default A/VutoLisp speed tester application.)
[
http://www.theswamp.org/index.php?topic=3952.0 ]
Here are three (posted here) that will demonstrate common attacks most AutoLispers would take.
;; benchmark: of getting layer props (checking to see if on)
;; alisp version
(defun test-alisp ( LayerNameHere / )
(< (cdr (assoc 62 (entget (tblobjname "LAYER" LayerNameHere)))) 0) )
(defun test-vlisp1 ( LayerNameHere / )
(vla-get-LayerOn
(vla-Item
(vla-get-Layers (vla-get-ActiveDocument (vlax-get-Acad-Object)))
LayerNameHere)) )
(defun test-vlisp2 ( LayerNameHere / )
(vla-get-LayerOn
(vlax-ename->vla-object
(tblobjname "layer" LayerNameHere))) )
(benchmark
'( (test-alisp "0")
(test-vlisp1 "0")
(test-vlisp2 "0")) )
Elapsed milliseconds / relative speed for 32768 iteration(s):
(TEST-ALISP "0")......1547 / 2.05 <fastest>
(TEST-VLISP2 "0").....2125 / 1.49
(TEST-VLISP1 "0").....3172 / 1 <slowest>