I believe the answer is highly dependent on whether you're using the NS collections from WebObjects JavaFoundation or the ones from WOnder. If I remember correctly, Anjo did a lot of work optimizing performance on the ones in wonder, making those much faster than the ones found in JavaFoundation.

How do they compare to Java collections? It probably depends on what implementation you are using. Whereas NSDictionary is a sort of one size fits all, Java has LinkedHashMap, ConcurrentHashMap... all different implementations with different performance profiles. Is NSArray faster than List? Is the List a Vector, ArrayList, etc? And then what are you doing with the list? Are you doing a lot of inserts and removals, simply iterating the list, does it need to be threadsafe, and so on.

As for what I use, I use whatever makes sense. To me, NS collections are just another implementation of Java collections, no better or worse. A lot of the WO API expects NSArray/NSDictionary, so I use those if I'm expecting them to touch WO code. If I see a private _NSThreadsafeMutableDictionary, I don't have any problem converting that into a ConcurrentHashMap which has nice methods like computeIfAbsent() which the _NS thing does not. When writing new API, I usually use the most basic Map/List/Set for method parameters these days unless there is something I need from a specific implementation like thread safety. For return values, I still like NS classes when I want to make sure something returned is considered immutable. I'm not aware of a standard Java collection which signals immutability in the type like NSArray/NSDictionary do. I'm sure there's a third party jar I could  find and use, but why bring in another third party dependency if I already have immutable collections in WO?


On 2/2/25 9:29 AM, ocs--- via Webobjects-dev wrote:
Hi there,

did ever anybody tried some benchmarks to find whether it is better to use WO 
collections (NSArray, NSDictionary...) as widely as possible (ie essentially 
anywhere, unless one really needs to store nulls or can't do without 
ConcurrentHashMap or so), or whether it's better to use standard collections 
(List, HashMap...) wherever they happen to work properly (which is surprisingly 
often, but not anywhere)?

Are they roughly comparable, or are one or the others considerably better?

Thanks!
OC

  _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/ramseygurley%40gmail.com

This email sent to ramseygur...@gmail.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to