| msg46206 - (view) |
Author: Garth Bushell (garth42) |
Date: 2004-06-22 15:22 |
| This patch removes the RegQueryInfoKey call and replaces it with a call to EnumKeyEx. This greatly speeds up this call. The script below times python 2.3 5531 89.7130000591 python 2.4 +patch 5531 0.0469999313354 start = time.time() i = 0 try: while 1: _winreg.EnumKey(_winreg.HKEY_CLASSES_ROOT, i) i += 1 except WindowsError: pass print i, time.time() - start |
|
|
| msg46207 - (view) |
Author: Mike Mangino (mmangino) |
Date: 2004-07-14 14:12 |
| Logged In: YES user_id=74879 This looks good to me, but I think the buffer size is off by one. I read the SDK to say tha they key can be 255 characters. That means you need to allocate 256 characters to allow for the null terminator. Could you create a test case for a max length registry key? |
|
|
| msg46208 - (view) |
Author: Thomas Heller (theller) *  |
Date: 2004-07-14 15:54 |
| Logged In: YES user_id=11105 I'm curious: Why did you replace RegEnumKey with RegEnumKeyEx? Are there any advantages of the latter? |
|
|
| msg46209 - (view) |
Author: Garth Bushell (garth42) |
Date: 2004-07-14 16:12 |
| Logged In: YES user_id=45280 mmangino: Yes you're correct it should be 256 in both cases. Doh! I'll attach a new patch in a while. but It's easy to mmodify the patch and up the linit to 256 theller: The advantage of the latter is it returns the Length of the string returned so we can pass it straight back to the string creation funtion in python without a strlen. also the SDK says this.... Note This function is provided only for compatibility with 16-bit versions of Windows. Applications should use the RegEnumKeyEx function. |
|
|
| msg46210 - (view) |
Author: Martin v. Löwis (loewis) *  |
Date: 2004-07-26 12:31 |
| Logged In: YES user_id=21627 Also, please follow the Python style guide for C code, PEP 7. In particular: - use tabs for indentation, with a tab being worth 8 spaces - omit spaces after opening and before closing parens - put the opening brace of a code block on the same line as the keyword |
|
|
| msg46211 - (view) |
Author: Alan McIntyre (alanmcintyre) *  |
Date: 2005-02-27 16:59 |
| Logged In: YES user_id=1115903 I think it's a good idea to get 16-bit Windows functions out of Python per Microsoft's recommendation, especially when doing so can also help performance. It looks like this patch still needs some cleanup and a test or two. If nobody else wants to do it I can probably finish it up. |
|
|
| msg46212 - (view) |
Author: Martin v. Löwis (loewis) *  |
Date: 2005-03-03 08:08 |
| Logged In: YES user_id=21627 garth42, can you please indicate whether you are willing to work on the patch, and if so in what time frame? |
|
|
| msg46213 - (view) |
Author: Georg Brandl (georg.brandl) *  |
Date: 2005-07-02 11:08 |
| Logged In: YES user_id=1188172 Attached a revised patch following coding style and adding additional error handling. winreg-enumkey.diff |
|
|
| msg46214 - (view) |
Author: Georg Brandl (georg.brandl) *  |
Date: 2006-02-18 23:37 |
| Logged In: YES user_id=1188172 Cleaned up and committed in rev. 42475. |
|
|