POST
|
Here's the thread: http://forums.arcgis.com/threads/1311-Pure-Python-COM-objects-cause-Beta-2-crash
... View more
04-07-2010
09:06 AM
|
0
|
0
|
753
|
POST
|
The presentation I gave at the DevSummit, and all the sample code (including the benchmark snippets) are here: http://www.pierssen.com/arcgis/misc.htm I haven't really seen any bugs regarding comtypes and ArcObjects, except one: it doesn't wrap the esriSystem.Array object since there's a name clash with ctypes Array. I'd be curious as to what version of comtypes you've been using and what problems you've been seeing. Once I download the RC I'll run the benchmarks again but I don't expect to see any change. I'm more concerned about checking on the pure Python COM objects bug.
... View more
04-07-2010
07:04 AM
|
0
|
0
|
753
|
POST
|
As unintuitive as it seems, I�??ve discovered that defragging a hard drive can adversely tweak the performance of a file geodatabase. After deleting and recopying my test dataset, I�??m getting numbers that once more are in line with what I�??ve seen in the past. Here are the revised stats, and I�??ve added a few extra languages for comparison: 9.3.1 scores (seconds): C++/ATL: 13 VBA: 14 Python/comtypes: 40 Python/arcgisscripting: 43 VB .NET: 47 IronPython: 54 Java: 81 C#: 1235 F#: 1235 C++/CLI (unmanaged): 1561 Beta 2 scores (seconds): C++/ATL: 7 VBA: 8 Python/comtypes: 33 VB .NET: 43 IronPython: 43 Java: 77 Python/arcpy: 111 C#: 1202 F#: 1204 C++/CLI (unmanaged): 1536 C# is the real shocker: all along I�??ve assumed that C# has about the same performance as VB .NET. Boy, was I wrong. I�??ve also been looking at F#, which is supposed to be ideally suited for asynchronous parallel processing. Sounds great for geoprocessing, doesn�??t it? Not if you�??re using ArcObjects: its performance is about the same as C#. At the bottom of the dung heap is C++/CLI. 😛 I was enthusiastic about it for a brief time last year, because you could have both managed and unmanaged code in the same project. Sounds like the best of both worlds, right? Yeah, until you look at the performance. Good bye. The walk-away lesson here is: avoid using fine-grained ArcObjects in anything but C++ (not CLI!!) or VBA. Instead, create coarse-grained objects in C++ and then consume them in other languages. See y'all at the Developer Summit! 😉
... View more
03-19-2010
08:55 PM
|
0
|
0
|
753
|
POST
|
Well, I've discovered that my older numbers are no longer valid since I went from VS 2005 to 2008 (VB .NET is much worse now! :p). Here are completely fresh scores for 9.3.1 vs. 9.4(10) beta 2: Benchmark: Find average area of polygon records in a file GDB Count: 521751 Avg Area: 426300 Scores in seconds represent best of 3 runs 9.3.1 scores (seconds): ----------------------- C++: 21 (1.0) VBA/ArcCatalog: 22 (1.0) VBA/Word2007: 30 (1.4) VB .NET: 179 (8.5) Python/comtypes: 47 (2.2) Python/arcgisscripting: 51 (2.4) IronPython: 62 (3.0) Beta 2 scores (seconds): ------------------------ C++: 12 (1.0) VBA/ArcCatalog: N/A VBA/Word2007: 12 (1.0) VB .NET: 74 (6.2) Python/comtypes: 37 (3.1) Python/arcpy: 110 (9.2) IronPython: 48 (4.0) What's a mystery to me is that VBA and C++ used to clock at 12-13 seconds on my 9.3.1 machine, and both are running slower now. Python's about the same as what it was before.
... View more
03-16-2010
11:26 AM
|
0
|
0
|
753
|
POST
|
The comtypes package works just fine with 2.6. There's an extra step if you're using ArcObjects rather than arcpy to initialize standalone licensing at 9.4(10) beta 2. The only problem I've noticed with beta 2 is that ArcMap and ArcCatalog will bomb on closing if any pure python COM objects have been present. I haven't tried psyco but I'll look into it. [UPDATE: No significant performance boost - the real bottleneck in the benchmark is COM interop (as intended), and psyco apparently can't do anything for that.] Speaking of arcpy, I spent some time working with the mapping module at beta 1, but I'd like to spend some more time on it again this week before the DevSummit. It's a great start anyway, and I definitely plan to attend the map automation session.
... View more
03-16-2010
06:09 AM
|
0
|
0
|
753
|
POST
|
IronPython is 2.6, CPython is 2.5.1, comtypes is 0.6.1
... View more
03-15-2010
01:26 PM
|
0
|
0
|
847
|
POST
|
FYI, I've now added IronPython to my list of COM interop performance benchmarks. Here are the relative scores for calculating the average area of 500+K polygon features at 9.3.1: VBA: 1.00 C++/Native: 1.00 Python/comtypes: 3.54 VB .NET: 3.54 Python/arcgisscripting: 3.62 IronPython: 4.78
... View more
03-15-2010
09:12 AM
|
0
|
0
|
847
|
POST
|
Here's my wish list: 1) The examples are a start, but I would like to see more on extending the Desktop 2) Preserve all of the 9.3 C++ material and discussions (e.g. working with events) as well as examples 3) Convert all of the 9.3 "C++" VB6 snippets to actual C++ 4) Will the add-in framework support C++? Currently it only supports .NET and Java Why my emphasis on C++? Because .NET (or Python) performance is about three and a half times slower working with fine-grained ArcObjects. When I first migrated some VBA apps to .NET, everyone complained until I moved the non-GUI components to C++. Ideally, I'd like to drop .NET altogether, because cross-platform applications are messier to debug and distribute. [Yes, I tried C++/CLI, and the performance of unmanaged code was HORRIBLE!] OK, enough ranting for today. 😉
... View more
03-04-2010
08:30 AM
|
0
|
0
|
562
|
POST
|
I haven't heard anything yet. I finally gave up and reverse engineered a category registration method in Python, which I have yet to port to C++.
... View more
03-03-2010
06:09 AM
|
0
|
0
|
562
|
POST
|
Not yet; I plan to eventually, though I hear IronPython's performance leaves something to be desired. Right now, I'm focusing on the Python shipped with ArcGIS.
... View more
02-26-2010
04:55 AM
|
0
|
0
|
847
|
POST
|
CreateObject automatically adds a ref, just as del automatically removes it. Even after the object is supposedly freed, the bomb still occurs. I tried adding an extra ref and that did no good. I know of no current issues with comypes but I'll do some looking; no bombs occur when the object is used in a normal Python session.
... View more
02-15-2010
04:32 AM
|
0
|
0
|
383
|
POST
|
As far as I can tell, there is no Publisher support in arcpy, nor can you use it to check out the license. This is a textbook situation where you want to use ArcObjects instead (see my presentation at the upcoming DevSummit). I've attached an example script.
... View more
02-12-2010
12:23 PM
|
0
|
0
|
847
|
POST
|
Pure Python COM objects work just fine in ArcGIS 9.3.1, but in Beta 2 they cause ArcMap and ArcCatalog to crash on closing. Here's a simple test: 1) Create a simple COM object using the instructions at: http://starship.python.net/crew/theller/comtypes/server.html 2) Open ArcMap or ArcCatalog and type the following in the Python window: from comtypes.client import CreateObject o = CreateObject("MyTypeLib.MyObject") 3) Close ArcMap or ArcCatalog 4) Boom! 😉
... View more
02-12-2010
05:55 AM
|
0
|
4
|
2557
|
POST
|
@Riverside: You're right, I overreacted and I'm sorry. I do look forward to it when it's available. I did spot the Engine SDK and will look to see if it provides some pieces that I'm missing. But it's really frustrating and hard for a developer to provide for an upcoming release when the SDKs are not in place.
... View more
01-28-2010
07:51 AM
|
0
|
0
|
724
|
Title | Kudos | Posted |
---|---|---|
1 | 01-04-2012 06:42 AM | |
1 | 09-23-2021 10:42 AM | |
2 | 09-28-2021 07:07 AM | |
1 | 04-07-2021 10:31 PM | |
3 | 03-21-2021 01:14 PM |
Online Status |
Offline
|
Date Last Visited |
01-07-2022
08:31 AM
|