[Skip Montanaro] > Real time doesn't mean much on an operating system that can > juggle multiple tasks, no matter how quiescent you try to make it. If this made any difference in the results I reported, they wouldn't have been reproducible to nearly 3 significant digits. That's why I printed the times for 3 runs of each -- you can trust that I know what I'm doing here. These things run for a fraction of a second each, the machine was as quiet as possible, and the output showed no cause for suspicion (indeed, I threw out a few runs where one of the three numbers was 10x larger than the other two -- *that's* how you know you got socked by a background task, provided you've got a sensitive timer to work with). > ... > It still appears there's a big slowdown between 1.6 and 2.1 in > the back tic operations though. This assumes too much. ``1`+`2`` triggers three reprs and a string concatenation. I suspect both slowed, but that the latter is the more important hit. First the repr(string) hit (first blob from the release20 rev of stringobject.c): *** 374,383 **** c = op->ob_sval[i]; if (c == quote || c == '\\') *p++ = '\\', *p++ = c; ! else if (c < ' ' || c >= 0177) { ! sprintf(p, "\\%03o", c & 0377); ! while (*p != '\0') ! p++; } else *p++ = c; --- 442,456 ---- c = op->ob_sval[i]; if (c == quote || c == '\\') *p++ = '\\', *p++ = c; ! else if (c == '\t') ! *p++ = '\\', *p++ = 't'; ! else if (c == '\n') ! *p++ = '\\', *p++ = 'n'; ! else if (c == '\r') ! *p++ = '\\', *p++ = 'r'; ! else if (c < ' ' || c >= 0x7f) { ! sprintf(p, "\\x%02x", c & 0xff); ! p += 4; } else *p++ = c; "The usual" string char endures twice as many tests+branches now. The other thing Jeremy has noted before: string+string is slower than it used to be, because BINARY_ADD now tries oodles of "sophisticated" ways to coerce the operands to numbers before considering it might be asking for a sequence catenation instead. Given that the benchmark pastes together two 1-character strings, this overhead is overwhelming compared to the concatenation work. > Aside: Tim, can I assume by your return address that Digital Creations > finally gave you an office and you're not computing from some seedy > motel room on US 1? ;-) I'm not entirely sure DC gave it to us, but there is indeed a Luxurious PythonLabs World Headquarters now, in Falls Church, VA. Conveniently located atop an inaccessible hill, it overlooks the fabulous Leesburg Pike, a stunning continuous strip mall stretching from the Potomac to the Arctic Circle (or France, whichever is closer -- geography isn't my strong suit). join-us-for-lunch!-we-need-the-company-ly y'rs - tim
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4