Существует ли класс C#, который предоставляет карте слабые ключи или/и слабые значения? Или по крайней мере WeakHashMap как функциональность.
В Java вы можете даже эмулировать расширяемую Enums, позволяя им реализовать тот же интерфейс, а затем добавлять все свои значения в какую-то коллекцию, вызывая их значения ().
-121--2889094-Проект архитектуры arp - отличная отправная точка для руководства по применению DDD. Он основан на Nhibernate, но принципы используются одинаково для EF ...
-121--2467932-в .NET 3.5 и ниже такой структуры нет. Однако я записал один для бокового проекта и опубликовал код в в следующем месте .
Начало .NET 4.0, имеется доступная структура ConnectalWealStable
в пространстве имен runtime.comPilerservicers, которое также делает трюк.
Текнетный сценарий, на который вы ссылаетесь, прекрасно работает под Win 7 (с Python 2.5 32bits), и я действительно не понимаю, почему он не должен.
Действительная слабость подхода WMI заключается в том, что в нем перечислены только продукты, установленные с помощью установщика Windows. Так что это не даст вам полный список. Многие программы используют различные программы установки. Просто сравните результаты между (Выбрать * из Win32_Product) и тем, что отображается на панели управления. Таким образом, если вы не уверены, что программа, которая вмешивается в ваш список, установлена с MSI, WMI определенно не является ответом.
Так что это может быть не очень pythonic, но лучший способ, насколько я знаю, использовать реестр, как вы сделали. Именно так работает панель управления, поэтому, по крайней мере, Windows считает ее самым надежным способом.
-121--3159686-Меня не удивляет тот факт, что вы получаете худшие результаты при профилировании вашего приложения как инструментария java-кода, как правило, всегда замедляет его выполнение. Это на самом деле хорошо запечатлено на странице Википедии на Профилирование , где упоминается, что инструментарий может вызывать изменения в производительности программы, потенциально вызывая неточные неточные результаты и heisenbugs (из-за эффекта наблюдателя : наблюдатели влияют на то, что они наблюдают, простым актом наблюдения только за ним ).
Сказав это, если вы хотите измерить скорость, я думаю, что вы не используете правильный инструмент. Профилировщики используются для поиска узких мест в приложении (и для этого вы на самом деле не заботитесь об общем воздействии). Но если вы хотите протестировать вашу библиотеку, вы должны использовать инструмент тестирования производительности (например, что-то вроде JMeter ), который сможет дать вам среднее время выполнения для каждого вызова. Вы получите гораздо лучшие и более надежные результаты с правильным инструментом.
-121--3909904- Ближайшим эквивалентом платформы, вероятно, является Словарь < K, WeakReference < V > >
. То есть это просто обычный словарь, но со значениями слабых ссылок.