-
Scott McKay authored
Testing : precheckin --full --strict-errors Reviewer: Fare JTB impact: No Ops impact: No Change to config : No Change to XML schema : No Change to DB schema : No Change to transport (timeouts, headers) : No Any change (or new use) of OAQs : No Change to inter-component transactions : No Depends on any other checkin / bug : No Tests that will verify: The CL-Protobufs tests Description: The unoptimized serialization code was slower than it needed to be and was a Niagara falls of consing. The problem is that (map () (curry ...)) is poorly optimized, which is a shame because it's such a nice coding style. :-P The fix is to replace 'map' with iteration (sigh) in a few critical places. - Add 'doseq', which chooses between 'dolist' or 'dovector'. - Make 'serialize-object', 'deserialize-object' and 'object-size' use 'doseq' instead of using 'map'. - Ditto for 'print-text-format'. - Fix the 'serialize-packed' and 'packed-size' optimizers to use 'dolist' or 'dovector' based on whether the field is a vector field. This makes the optimized code faster, too. - Make the optimized serializer generators pass in 'vectorp' so that the wire-format optimizers can do a better job. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@562921 f8382938-511b-0410-9cdd-bb47b084005c
9a1d9899