Ticket #1014 (closed enhancement: fixed)
remove-if-not consing: seems to fully copy the original sequence before removing elements
|Reported by:||avodonosov||Owned by:|
(DEFPARAMETER *FILTERED-LIST* (REMOVE-IF-NOT (CONSTANTLY NIL) *LONG-LIST*)) took 75,108,000 microseconds (75.108000 seconds) to run. 73,183,190 microseconds (73.183190 seconds, 97.44%) of which was spent in GC. During that period, and with 8 available CPU cores, 74,662,078 microseconds (74.662080 seconds) were spent in user mode 171,601 microseconds ( 0.171601 seconds) were spent in system mode 320,000,128 bytes of memory allocated. (length *long-list*) => 20000000 (/ 320000128.0 (length *long-list*)) => 16.000006 ;; I.e. 16 bytes (64 bit cons) per element of original lisp (asdf:implementation-identifier) => "ccl-1.8-f95-win-x64"
Probably the remove-if-not implementation could be enhanced.
Note: See TracTickets for help on using tickets.