0 Members and 1 Guest are viewing this topic.
(setq lst ((505.434 294.582 0.0) (630.636 386.387 0.0) (755.837 478.191 0.0)))(setq pt (505.434 294.582 0.0))
Code - Auto/Visual Lisp: [Select]Benchmarking ..............Elapsed milliseconds / relative speed for 2048 iteration(s): (MEMBER PT LST)..............................1388 / 4.26 <fastest> (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....5179 / 1.14 (VL-REMOVE-IF-NOT (QUOTE (LAMBDA (X)...).....5913 / 1 <slowest>
Elapsed milliseconds / relative speed for 8192 iteration(s): (VL-POSITION PT LST)..........................1485 / 8.39 <fastest> (MEMBER PT LST)...............................4594 / 2.71 (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....11875 / 1.05 (VL-REMOVE-IF-NOT (QUOTE (LAMBDA (X)...).....12453 / 1 <slowest>
In real world use I dont believe vl-position or member are practical for floats or lists of floats.
(benchmark '((vl-some '(lambda (x) (equal x pt 1e-8)) lst)(vl-member-if '(lambda (x) (equal x pt 1e-8)) Lst)(vl-some '(lambda (x) (equal x pt 1e-8)) lst)(vl-member-if '(lambda (x) (equal x pt 1e-8)) Lst)))elapsed milliseconds / relative speed for 1024 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1484 / 1.04 <fastest> (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1500 / 1.03 (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1531 / 1.01 (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1547 / 1 <slowest>
... like building a house on sand.
Diminishing returns, how do they work?
((lambda (/ i) (setq i '(0. 0. 0.) lst nil ) ;_ end of setq (repeat 8192 (setq lst (cons (setq i (mapcar (function +) i '(0.25 0.25 0.25))) lst)) => ) (princ) ) ;_ end of lambda)
(setq pt (nth 0 lst)) => (2048.0 2048.0 2048.0)Elapsed milliseconds / relative speed for 32768 iteration(s): (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1171 / 1 <fastest> (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1172 / 1 <slowest>(setq pt (nth 10 lst)) => (2045.5 2045.5 2045.5)Elapsed milliseconds / relative speed for 32768 iteration(s): (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1218 / 1 <fastest> (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1219 / 1 <slowest>(setq pt (nth 50 lst)) => (2035.5 2035.5 2035.5)Elapsed milliseconds / relative speed for 32768 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1437 / 1 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1438 / 1 <slowest>(setq pt (nth 100 lst)) => (2023.0 2023.0 2023.0)Elapsed milliseconds / relative speed for 32768 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1797 / 1 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1797 / 1 <slowest>(setq pt (nth 500 lst)) => (1923.0 1923.0 1923.0)Elapsed milliseconds / relative speed for 8192 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1015 / 1.03 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1047 / 1 <slowest>(setq pt (nth 1000 lst)) => (1798.0 1798.0 1798.0)Elapsed milliseconds / relative speed for 8192 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1781 / 1.02 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1813 / 1 <slowest>(setq pt (nth 2000 lst)) => (1548.0 1548.0 1548.0)Elapsed milliseconds / relative speed for 4096 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1610 / 1.03 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1656 / 1 <slowest>(setq pt (nth 3000 lst)) => (1298.0 1298.0 1298.0)Elapsed milliseconds / relative speed for 2048 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1156 / 1.04 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1203 / 1 <slowest>(setq pt (nth 4000 lst)) => (1048.0 1048.0 1048.0)Elapsed milliseconds / relative speed for 2048 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1516 / 1.04 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1578 / 1 <slowest>(setq pt (nth 5000 lst)) => (798.0 798.0 798.0)Elapsed milliseconds / relative speed for 2048 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1859 / 1.04 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1937 / 1 <slowest>(setq pt (nth 6000 lst)) => (548.0 548.0 548.0)Elapsed milliseconds / relative speed for 1024 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1109 / 1.04 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1156 / 1 <slowest>(setq pt (nth 7000 lst)) => (298.0 298.0 298.0)Elapsed milliseconds / relative speed for 1024 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1312 / 1.05 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1375 / 1 <slowest>(setq pt (last lst)) => (0.25 0.25 0.25)Elapsed milliseconds / relative speed for 1024 iteration(s): (VL-SOME (QUOTE (LAMBDA (X) (EQUAL X...).....1516 / 1.04 <fastest> (VL-MEMBER-IF (QUOTE (LAMBDA (X) (EQ...).....1578 / 1 <slowest>