- 28 Ock, 2003 24 kayıt (commit)
-
-
Guido van Rossum yazdı
change in meaning.
-
Tim Peters yazdı
of my recent XXX comment, taking a (what appears to be vanishingly small) chance and calling self.memoize() instead.
-
Guido van Rossum yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Guido van Rossum yazdı
marshal.loads() beats struct.unpack()! Possibly because the latter creates a one-tuple. :-(
-
Guido van Rossum yazdı
40% faster than marshal.dumps(x)[1:]! (That's not counting the module attribute lookups, which can be avoided in either case.)
-
Tim Peters yazdı
created by recursive tuples.
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
iteritems() instead of materializing a (possibly giant) list of the items.
-
Tim Peters yazdı
The code is much easier to follow now, and I bet it's faster too.
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
make the bin-vs-not-bin order consistent with what other routines try to do (they almost all handle the bin case first).
-
Tim Peters yazdı
some notion of low-level efficiency. Undid that, but left one routine alone: save_inst() claims it has a reason for not using memoize(). I don't understand that comment, so added an XXX comment there.
-
Tim Peters yazdı
belongs. This is a much smaller change than it may appear: the bulk of the function merely got unindented by one level.
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Neal Norwitz yazdı
-
Tim Peters yazdı
then the embedded argument consumes at least 256 bytes. The difference between a 3-byte prefix (LONG2 + 2 bytes) and a 5-byte prefix (LONG4 + 4 bytes) is at worst less than 1%. Note that binary strings and binary Unicode strings also have only "size is 1 byte, or size is 4 bytes?" flavors, and I expect for the same reason. The only place a 2-byte thingie was used was in BININT2, where the 2 bytes make up the *entire* embedded argument (and now EXT2 also does this); that's a large savings over 4 bytes, because the total opcode+argument size is so small in the BININT2/EXT2 case. Removed the TAKEN_FROM_ARGUMENT "number of bytes" code, and bifurcated it into TAKEN_FROM_ARGUMENT1 and TAKEN_FROM_ARGUMENT4. Now there's enough info in ArgumentDescriptor objects to deduce the # of bytes consumed by each opcode. Rearranged the order in which proto2 opcodes are listed in pickle.py.
-
- 27 Ock, 2003 16 kayıt (commit)
-
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
-
Guido van Rossum yazdı
The protocol now defaults to 1. Protocol 2 is still unimplemented.
-
Guido van Rossum yazdı
(SF patch #675750, to fix SF bug #675552.)
-
Guido van Rossum yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
dict from the Unpickler's memo (which is a different beast!).
-
Tim Peters yazdı
expensive way to spell chr() and ord().
-
Tim Peters yazdı
-
Guido van Rossum yazdı
-
Tim Peters yazdı
-
Tim Peters yazdı
component strings by a blank instead of a period. Guido pointed out that the component strings (at least the first one) can be dotted already. find_class() is overridable too, so only God knows all the possibilities that make sense to someone.
-
Tim Peters yazdı
this over the weekend, and it made faster & better progress than I expected -- it's already useful <wink>.
-
Tim Peters yazdı
-
Andrew M. Kuchling yazdı
-