Re[7]: clr perf problem
От: Somescout  
Дата: 30.06.15 11:01
Оценка: +1
Здравствуйте, mapnik, Вы писали:

M>Впрочем в CLR похоже все не быстрое.

Пока продемонстрировано обратное.
ARI ARI ARI... Arrivederci!
Re[5]: clr perf problem
От: tofox2 Россия  
Дата: 30.06.15 11:11
Оценка:
Здравствуйте, mapnik, Вы писали:

M>И нет я не могу использовать ConcurrentDictionary — мне нужно поддерживать версии .net < 4.


несложно самому обернуть Dictionary блокировками
Re[8]: clr perf problem
От: mapnik США http://www.hooli.xyz/
Дата: 30.06.15 11:33
Оценка: :))) :)
Здравствуйте, Yoriсk, Вы писали:

Y>Еще раз, по порядку: cравниваются реализации на Java и С#. Вы говорите, что реализация на HashMap, который thread-safe только в случае immutable на java вас устраивает, а на Dictionary на .net — нет. Поэому в Dictionary нужен ReaderWriterLock, а в HashMap, ... какая-то аналогичная конструкция на java(ReadWritLock?).

Y>Вот я и спрашиваю: а в чём, собственно, разница?

Ок, по порядку:
1) Меня не устраивает perf для Hashtable на c#. По моим данным она в 10 раз ниже аналога на java
2) C Dictionary все ок — производительность что надо. Но проблема с thread-safe которую можно решить с помощью ReaderWriterLock. Но тогда он станет еще медленнее чем Hashtable. Не ок.
3) У java есть Hashmap and ConcurrentHashmap (добавленные соотвественно в 1 и 1.5[это 2004 год,!]), которые работают довольно быстро в отличии от продукта Сатьи и в которых решена проблема thread safe.

В итоге мне придется делать свою синхронизации для Dictionary, потому что какой-то молодец додумался реализовать нечто подобное только в 4 net.
А про то как работает GC в CLR я вообще молчу — тут нужна отдельная ветка с разбором всего и вся.

Ну вот и объясните мне как со всеми этими бесконечными косяками С# и Шарепоинт станут Великими? Что об этом говорят ваши Евангилисты?

Всем Спасибо за участие
Re[9]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 11:38
Оценка: +2
Здравствуйте, mapnik, Вы писали:

M>Поэтому невозможно использовать Dictionary в моем случае (это уже проверено).


Простой вопрос, на который ты третье сообщение ответить не можешь — а почему джавовский HashMap использовать можно?
Re[9]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 11:38
Оценка:
Здравствуйте, mapnik, Вы писали:

M>Но тогда он станет еще медленнее чем Hashtable. Не ок.


Ты пробовал? Или так, теоретизируешь?

M>3) У java есть Hashmap and ConcurrentHashmap (добавленные соотвественно в 1 и 1.5[это 2004 год,!]), которые работают довольно быстро в отличии от продукта Сатьи и в которых решена проблема thread safe.


Про ConcurrentDictionary и CoreFX ты почему мимо ушей пропустил? Не вписывается в теорию?
Re[7]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 11:38
Оценка:
Здравствуйте, mapnik, Вы писали:

M>Вы угараете надо мной что ли? В какой реальности этот CoreFX может заменить скажем .net 3.5 на машине кастомера? Не смешно


Ну, если тебе соображалки не хватает, то расшифрую. В CoreFX есть исходник ConcurrentDictionary с либеральной лицензией. Копируешь этот исходник и его зависимости в свой проект и собираешь под 3.5.
Re[6]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 11:39
Оценка:
Здравствуйте, tofox2, Вы писали:

M>>И нет я не могу использовать ConcurrentDictionary — мне нужно поддерживать версии .net < 4.

T>несложно самому обернуть Dictionary блокировками

Так как это сделано в ConcurrentDictionary — довольно сложно.
Re[5]: clr perf problem
От: BulatZiganshin  
Дата: 30.06.15 11:40
Оценка: +1
Здравствуйте, mapnik, Вы писали:

НС>>Кто тебе такой бред сказал?


M>Вы документацию производителя вообще читаете? Впрочем зачем это шарепоинт-программистам, это же не модно — читать.


молодцы, оправдываете назначение раздела. а я уж испугался что здесь теперь начнут решать скучные технические проблемы
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: clr perf problem
От: Somescout  
Дата: 30.06.15 11:42
Оценка:
Здравствуйте, mapnik, Вы писали:

M>Здравствуйте, Yoriсk, Вы писали:


M>Ок, по порядку:

M>1) Меня не устраивает perf для Hashtable на c#. По моим данным она в 10 раз ниже аналога на java
Вот это упёртость, внушает!

M>2) C Dictionary все ок — производительность что надо. Но проблема с thread-safe которую можно решить с помощью ReaderWriterLock. Но тогда он станет еще медленнее чем Hashtable. Не ок.

lol

M>3) У java есть Hashmap and ConcurrentHashmap (добавленные соотвественно в 1 и 1.5[это 2004 год,!]), которые работают довольно быстро в отличии от продукта Сатьи и в которых решена проблема thread safe.

lol

M>Ну вот и объясните мне как со всеми этими бесконечными косяками С# и Шарепоинт станут Великими? Что об этом говорят ваши Евангилисты?

А всё же, что вы скажете насчёт того что java сливает
Автор: Somescout
Дата: 30.06.15
по производительности в несколько раз даже если используется HashTable? Пока внятных комментариев вы так и не дали.

M>Всем Спасибо за участие


Очередная постановка великого романа С. Кинга "Сливание"

PS. Великодушно простите меня что сначала пытался вести с вами нормальный диалог. Больше не повторится.
ARI ARI ARI... Arrivederci!
Re[8]: clr perf problem
От: mapnik США http://www.hooli.xyz/
Дата: 30.06.15 11:49
Оценка: -1 :))) :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну, если тебе соображалки не хватает, то расшифрую. В CoreFX есть исходник ConcurrentDictionary с либеральной лицензией. Копируешь этот исходник и его зависимости в свой проект и собираешь под 3.5.


Зачем мне умножать количество индусского кода в проекте? У меня и так его весь дотНет.
Я лучше уж тогда напишу нормальную реализацию собственными силами. Просто это время, которое можно было бы потратить на более интересные вещи. Вот так жизнь и проходит мимо
Re[9]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 11:58
Оценка:
Здравствуйте, mapnik, Вы писали:

M>Зачем мне умножать количество индусского кода в проекте?


Т.е. тебе шашечки?

M>Я лучше уж тогда напишу нормальную реализацию собственными силами.


Пиши, а мы поржем.

P.S. ConcurrentDictionary писали не индусы.
Re[9]: clr perf problem
От: Yoriсk  
Дата: 30.06.15 12:17
Оценка:
Здравствуйте, mapnik, Вы писали:

Y>>Вот я и спрашиваю: а в чём, собственно, разница?


M>Ок, по порядку:

M>1) Меня не устраивает perf для Hashtable на c#. По моим данным она в 10 раз ниже аналога на java

Про Dictionary мы выяснили: его аналог на java — HashMap работает примерно с такой же скоростью.
А какой аналог Hashtable в java и где "данные"?
Re[9]: clr perf problem
От: Sharov Россия  
Дата: 30.06.15 12:45
Оценка:
Здравствуйте, mapnik, Вы писали:

M>2) C Dictionary все ок — производительность что надо. Но проблема с thread-safe которую можно решить с помощью ReaderWriterLock. Но тогда он станет еще медленнее чем Hashtable. Не ок.


Производительность-то замеряли?
Кодом людям нужно помогать!
Re: clr perf problem
От: fedor.reznik  
Дата: 30.06.15 13:26
Оценка:
Здравствуйте, mapnik, Вы писали:

Ну раз уж КСВ...

M>Что я делаю не так?


— Используете не подходящие конструкции языка из доисторических времен.
— Меряете производительность с помощью, DateTime, вместо того, чтобы взять профайлер, который, BTW, вам расскажет в чем проблема.
— Когда вам советуют использовать Dictionary, ваш изначальный код вдруг обрастает требованиям к многопоточности, с непоколибимой уверенностью, что вы уже и ее померяли и увидели просадку.

Не надо так.
Re[9]: clr perf problem
От: Sinix  
Дата: 30.06.15 13:35
Оценка: +1
Здравствуйте, mapnik, Вы писали:

M>Ну вот и объясните мне как со всеми этими бесконечными косяками С# и Шарепоинт станут Великими? Что об этом говорят ваши Евангилисты?

Кэп: как только программисты начнут учить матчасть и перестанут использовать легаси-фреймворки (.net 3.5? 2015й? Серьёзно???).
Ну, т.е. никогда

По сабжу: хотите поддерживать легаси — ilspy в жубы и самостоятельно переписываем свежедобавленные (всего-то 5 лет прошло) плюшки. Не хотим — не поддерживаем.
В чём проблема-то?

P.S. А если не тратить время, а заюзать http://www.nuget.org/packages/TaskParallelLibrary то и жаловаться не пришлось бы.
Re[10]: clr perf problem
От: mapnik США http://www.hooli.xyz/
Дата: 30.06.15 14:14
Оценка: :)
Здравствуйте, Sinix, Вы писали:

S>Кэп: как только программисты начнут учить матчасть и перестанут использовать легаси-фреймворки (.net 3.5? 2015й? Серьёзно???).

S>Ну, т.е. никогда
1 — учить матчасть — это вы скажите индусам или пакистанцам (или австралам?) которые писали дотНет. Версия concurrent dictionary появилась через 6 лет после аналога в java. Нормально так да?
2 — "перестанут использовать легаси-фреймворки" — это продакшен друг мой. Некоторые кастомеры еще сидят на 2-ке (вы ее в силу вашего молодого возраста верно и не помните). А некоторые кастомеры еще сидят на java 1.6. Это реальный мир друг мой, а не россыпь рекламных буклетов от MS.

S>По сабжу: хотите поддерживать легаси — ilspy в жубы и самостоятельно переписываем свежедобавленные (всего-то 5 лет прошло) плюшки. Не хотим — не поддерживаем.

S>В чём проблема-то?
Да не нужен никакой ilspy. Просто нужно сделать нормальную реализацию самому и делов-то. Конечно вы этого не поймете — вы же у нас (и ваши друзья которые активно восхвалют Джеффри и Мадса вместе с вами) яркий framework developer, один из тех для кого Баллмер пританцовывал в свое время.

Просто руки опускаются. Одну кривость исправишь, тут же другая вылезает. Я ожидал что CLR будет нормальной платформой которая поможет мне сфокусироваться на создании хорошего продукта. Вместо это я должен патчить ее повсюду.
Re[5]: clr perf problem
От: alexzz  
Дата: 30.06.15 14:41
Оценка:
Здравствуйте, mapnik, Вы писали:

M>И нет я не могу использовать ConcurrentDictionary — мне нужно поддерживать версии .net < 4.


Он к версии CLR гвоздями не прибит.
https://www.nuget.org/packages/TaskParallelLibrary/
Re[10]: clr perf problem
От: Ночной Смотрящий Россия  
Дата: 30.06.15 15:34
Оценка: 3 (1)
Здравствуйте, Sinix, Вы писали:

S>P.S. А если не тратить время, а заюзать http://www.nuget.org/packages/TaskParallelLibrary то и жаловаться не пришлось бы.


Это весьма древний бекпорт. Правильная ссылка — https://github.com/dotnet/corefx/tree/master/src/System.Collections.Concurrent . MIT license, все дела. Да еще народ несколько исходную версию подчистил.
Re[11]: clr perf problem
От: Sinix  
Дата: 30.06.15 16:28
Оценка: +3
Здравствуйте, mapnik, Вы писали:

M>1 — учить матчасть — это вы скажите индусам или пакистанцам (или австралам?) которые писали дотНет. Версия concurrent dictionary появилась через 6 лет после аналога в java. Нормально так да?


Нет. Учить матчасть — это в том числе самостоятельно решать проблемы, а не обзывать других индусами, т.к. они не сделали это за вас. Там ещё много всего, но начать стоит именно с этого.

M>2 — "перестанут использовать легаси-фреймворки" — это продакшен друг мой. Некоторые кастомеры еще сидят на 2-ке (вы ее в силу вашего молодого возраста верно и не помните). А некоторые кастомеры еще сидят на java 1.6. Это реальный мир друг мой, а не россыпь рекламных буклетов от MS.


Кэп: за редчайшими исключениями типа использования недокументированных нюансов переезд с 2.0 на 4.6 делается без перекомпиляции. Правкой appconfig. Вопрос лени и квалификации разработчиков.

С 1.1 — с ходу не вспомню, поддерживается запуск без перекомпиляции, или нет. Мы в своё время не страдали и просто перешли с колёс на бету 2.0, как только go live вышла.


M>Да не нужен никакой ilspy. Просто нужно сделать нормальную реализацию самому и делов-то.

Кэп #2: как самостоятельно напишете что-то сравнимое — приходите. Там кроме пафоса с апломбом ещё знания нужны, вот незадача
Re[11]: clr perf problem
От: _Case  
Дата: 30.06.15 17:09
Оценка: -1 :)
Здравствуйте, mapnik, Вы писали:

M>Здравствуйте, Sinix, Вы писали:

это вы скажите индусам или пакистанцам (или австралам?) которые писали дотНет. Версия concurrent dictionary появилась через 6 лет после аналога в java. Нормально так да?

M>Просто руки опускаются. Одну кривость исправишь, тут же другая вылезает. Я ожидал что CLR будет нормальной платформой которая поможет мне сфокусироваться на создании хорошего продукта. Вместо это я должен патчить ее повсюду.


Понимаете, просто .NET как раз и младше джавы примерно на 6 лет, java появилась в 95-ом, а .net в 2001-ом.. и это касается не только CLR, с фрэймворками, build инструментами тоже самое, обычно появляется фрэймворк для джава, а через несколько лет портируется на .NET или создают библиотеку с похожим функционалом.. например NUnit, NHibernate, Spring.NET...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.