Re[55]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:03
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Ты посчитай сколько памяти займут эти строки?


CC>На 10к строк С# падает с out of memory

??? Не падает. Выполняется за 3.9 сек.

CC>В С++ у тебя вылетает bad_alloc на ~1.4 Гб занятой памяти.

1.4 гб это далеко не лимит — еще как минимум 600 мб должно быть доступно процессу.
Re[45]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:06
Оценка:
Здравствуйте, alexey_ma, Вы писали:


_>>>Почти все крупные компании используют готовые решения.


C>>Это совсем не так. Нет готовых решений для enterprise систем. Или Вы серьезно думаете, что СSM или ERP — это есть ПОЛНОЕ enterprise решение?

_>Ну так смотря для кого. Хотя конечно обычно есть и CRM и ЕRP и еще чего нибудь. Но например SAP и Siebel(Oracle) предлагают и то и другое.
_>У Вас есть пример написанной с нуля на заказ крупной enterprise системы? В какой компании?

У меня таких примеров на моей практике аж три (из тех, что разработаны нами с "нуля") за последние 7 лет. Название компаний Вам ни о чем не скажет.
Re[57]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:09
Оценка: :)
Здравствуйте, alexey_ma, Вы писали:



_>>>У вас в коде вроде тоже замена одиночного символа

C>>Речь шла о замене именно подстроки. Я могу поменять замену символа на замену подстроки из десятков символов и принципиального падения производительности не будет.
_>Уверены ?
_>У меня ваш код при замене
_>

_>stringBuilder.Replace('1', '2');

_>на
_>

_>stringBuilder.Replace("c1", "12");

_>Выбрасывает System.OutOfMemoryException.

У меня отрабатывает за 4.9 сек (против 2.9 сек на замену одного символа). Ну раз у Вас не достаточно памяти, то уменьшите количество иттераций в несколько раз.
Re[46]: Ну ты вообще многого не видишь... ;)
От: alexey_ma Израиль  
Дата: 08.06.09 14:13
Оценка:
Здравствуйте, criosray, Вы писали:

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



_>>>>Почти все крупные компании используют готовые решения.


C>>>Это совсем не так. Нет готовых решений для enterprise систем. Или Вы серьезно думаете, что СSM или ERP — это есть ПОЛНОЕ enterprise решение?

_>>Ну так смотря для кого. Хотя конечно обычно есть и CRM и ЕRP и еще чего нибудь. Но например SAP и Siebel(Oracle) предлагают и то и другое.
_>>У Вас есть пример написанной с нуля на заказ крупной enterprise системы? В какой компании?

C>У меня таких примеров на моей практике аж три (из тех, что разработаны нами с "нуля") за последние 7 лет. Название компаний Вам ни о чем не скажет.

Три это вовсе не "их сотни тысяч, если не миллионы" не "исключительно на заказ".
Re[40]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.06.09 14:14
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


S>>Согласен, что врайт барьера не будет,так как создаются новые узлы, но будет фрагментация кучи старших поколений, если освободившиеся узлы в них лежат.

WH>Какая еще фрагментация в случае с уплотняющим мусорщиком?

На дефрагментацию кучи время уходит? И это может происходить достаточно часто. Все зависит от емкости, и скорости изменения дерева.
S>>Кстати а как там с балансировкой дерева?
WH>2-3 дерево. Частный случай B дерева. Еще вопросы?

Прибавляй затраты на балансировку.
Я к тому, что много дополнительных затрат, которые по уму нужно учитывать, при выборе типа инструмента.
Но ни вкоем случае не против веревок. Для каждой задачи свой алгоритм. Чем больше тем лучше.
Поэтому и убежден, что 3 на бора строк это лучше чем 1 универсальный, но с реализацией одинаковых интерфейсов.
Нет серебрянной пули.
Спасибо, вопросов пока нет.
и солнце б утром не вставало, когда бы не было меня
Re[40]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:19
Оценка:
Здравствуйте, WolfHound, Вы писали:

И все-таки, есть где-то готовая реализация immutable rope? Очень хотелось бы посмотреть, а то мучают сомнения на счет эфективности.
Re[47]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:22
Оценка:
Здравствуйте, alexey_ma, Вы писали:

_>>>>>Почти все крупные компании используют готовые решения.


C>>>>Это совсем не так. Нет готовых решений для enterprise систем. Или Вы серьезно думаете, что СSM или ERP — это есть ПОЛНОЕ enterprise решение?

_>>>Ну так смотря для кого. Хотя конечно обычно есть и CRM и ЕRP и еще чего нибудь. Но например SAP и Siebel(Oracle) предлагают и то и другое.
_>>>У Вас есть пример написанной с нуля на заказ крупной enterprise системы? В какой компании?

C>>У меня таких примеров на моей практике аж три (из тех, что разработаны нами с "нуля") за последние 7 лет. Название компаний Вам ни о чем не скажет.

_>Три это вовсе не "их сотни тысяч, если не миллионы" не "исключительно на заказ".

Конечно на заказ — иначе и не выйдет, т.к. требования у всех разные и хотя подсистемы типа call-центров, crm, erp и т.д. могут быть адаптированны под условиях конкретно взятой компании, то в ЦЕЛОМ enterprise система для каждой компании своя уникальная.

Иными словами, Вы явно не понимаете о чем говорите.
Re[48]: Ну ты вообще многого не видишь... ;)
От: alexey_ma Израиль  
Дата: 08.06.09 14:27
Оценка:
Здравствуйте, criosray, Вы писали:

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


_>>>>>>Почти все крупные компании используют готовые решения.


C>>>>>Это совсем не так. Нет готовых решений для enterprise систем. Или Вы серьезно думаете, что СSM или ERP — это есть ПОЛНОЕ enterprise решение?

_>>>>Ну так смотря для кого. Хотя конечно обычно есть и CRM и ЕRP и еще чего нибудь. Но например SAP и Siebel(Oracle) предлагают и то и другое.
_>>>>У Вас есть пример написанной с нуля на заказ крупной enterprise системы? В какой компании?

C>>>У меня таких примеров на моей практике аж три (из тех, что разработаны нами с "нуля") за последние 7 лет. Название компаний Вам ни о чем не скажет.

_>>Три это вовсе не "их сотни тысяч, если не миллионы" не "исключительно на заказ".

C>Конечно на заказ — иначе и не выйдет, т.к. требования у всех разные и хотя подсистемы типа call-центров, crm, erp и т.д. могут быть адаптированны под условиях конкретно взятой компании, то в ЦЕЛОМ enterprise система для каждой компании своя уникальная.

Не, не верю. Самописных систем я видел очень мало, а вот кастомизированных коробочных много.
Re[49]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:29
Оценка:
Здравствуйте, alexey_ma, Вы писали:


_>Не, не верю. Самописных систем я видел очень мало, а вот кастомизированных коробочных много.


Ну значит мы говорим о разных вещах. Если уж Вы мне не верите, то постарайтесь подумать логически и ответить себе на вопрос — чем заняты миллионы джавистов и дотнетчиков в корпоративном секторе (а именно этот сектор основной для этой категории программистов).
Re[56]: Ну ты вообще многого не видишь... ;)
От: CreatorCray  
Дата: 08.06.09 14:34
Оценка:
Здравствуйте, criosray, Вы писали:

C>Ну и кроме того, я могу сполна доверять стандартным классам фреймворка, а вот левой библиотеке некоего Васи Пупкина (ничего личного, я так для примера) — без соответствующего code review доверять ну никак не смогу.

C>Да и вообще зачем изобретать велосипед? Сколько уже было потрачено человеко часов для такой банальщины, как преобразование базовых типов для вывода в строку?..
Ну .NET FW же изобрели.
Опять куда то не туда ушла дискуссия.

C>>>Вот-вот. Почему-то с С# на такой банальщине не приходится "пользоваться MSDN".

CC>>Мне тоже не приходится.
C>Про _itow_s Вы знали на генетическом уровне? Да?
Ага. Зная про itoa "гены" начали мне подсказывать что есть и itow.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[50]: Ну ты вообще многого не видишь... ;)
От: Mamut Швеция http://dmitriid.com
Дата: 08.06.09 14:41
Оценка: +4 :)))
Здравствуйте, criosray, Вы писали:

c> _>Не, не верю. Самописных систем я видел очень мало, а вот кастомизированных коробочных много.


c> Ну значит мы говорим о разных вещах. Если уж Вы мне не верите, то постарайтесь подумать логически и ответить себе на вопрос — чем заняты миллионы джавистов и дотнетчиков в корпоративном секторе (а именно этот сектор основной для этой категории программистов).


Создают видиость работы Как и большинство программистов, вне зависимости от языка программирования
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[51]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:46
Оценка:
Здравствуйте, Mamut, Вы писали:

c>> _>Не, не верю. Самописных систем я видел очень мало, а вот кастомизированных коробочных много.


c>> Ну значит мы говорим о разных вещах. Если уж Вы мне не верите, то постарайтесь подумать логически и ответить себе на вопрос — чем заняты миллионы джавистов и дотнетчиков в корпоративном секторе (а именно этот сектор основной для этой категории программистов).


M>Создают видиость работы Как и большинство программистов, вне зависимости от языка программирования


Мы таких не держим.
Re[57]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 14:49
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

C>>Ну и кроме того, я могу сполна доверять стандартным классам фреймворка, а вот левой библиотеке некоего Васи Пупкина (ничего личного, я так для примера) — без соответствующего code review доверять ну никак не смогу.

C>>Да и вообще зачем изобретать велосипед? Сколько уже было потрачено человеко часов для такой банальщины, как преобразование базовых типов для вывода в строку?..
CC>Ну .NET FW же изобрели.
CC>Опять куда то не туда ушла дискуссия.

А куда ей еще уйти? Все еще раз и еще раз сводится к примитивизму С++, как платформы, где даже такая элементращина, как преобразование типов, требует штудирования MSDN, а для банального replace всех вхождений подстроки в строку надо подкючать стороннюю библиотеку типа boost.

C>>>>Вот-вот. Почему-то с С# на такой банальщине не приходится "пользоваться MSDN".

CC>>>Мне тоже не приходится.
C>>Про _itow_s Вы знали на генетическом уровне? Да?
CC>Ага. Зная про itoa "гены" начали мне подсказывать что есть и itow.
itoa Вы, поди, тоже знали на генетическом уровне?
Re[41]: Ну ты вообще многого не видишь... ;)
От: WolfHound  
Дата: 08.06.09 15:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>На дефрагментацию кучи время уходит? И это может происходить достаточно часто. Все зависит от емкости, и скорости изменения дерева.

Чё? Дефрагментация кучи происходит во время сборки мусора.
Причем я тут можно очень серьезно срезать углы по сравнения с изменяемой кучей.

WH>>2-3 дерево. Частный случай B дерева. Еще вопросы?

S> Прибавляй затраты на балансировку.
Какую балансировку?
B дерево строится сбалансированным сразу.
Ты вообще представляешь как работают B деревья?
Или мне тут нужно всем лекции по структурам данных прочитать?

S> Я к тому, что много дополнительных затрат, которые по уму нужно учитывать, при выборе типа инструмента.

Каких?

S>Поэтому и убежден, что 3 на бора строк это лучше чем 1 универсальный,

Хуже. Причем сильно хуже.

S>но с реализацией одинаковых интерфейсов.

Одинаковые интерфейсы у изменяемых и неизменяемых структур данных просто сюр.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[41]: Ну ты вообще многого не видишь... ;)
От: WolfHound  
Дата: 08.06.09 15:55
Оценка:
Здравствуйте, criosray, Вы писали:

C>И все-таки, есть где-то готовая реализация immutable rope? Очень хотелось бы посмотреть, а то мучают сомнения на счет эфективности.

Я уже третий раз эту ссылку привожу http://www.ibm.com/developerworks/java/library/j-ropes/index.html

For example, the ICFP 2007 Programming Contest involved implementing a virtual machine that modified its state with every cycle and ran for millions of cycles for some inputs (see Resources). In one Java implementation, the virtual machine's speed was improved by three orders of magnitude, from ~50 cycles/sec to more than 50,000/sec, by changing the state representation to use a Rope instead of a specialized StringBuffer.

Я конечно понимаю что пример весьма клинический но разгон алгоритма на 3 порядка....
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[42]: Ну ты вообще многого не видишь... ;)
От: criosray  
Дата: 08.06.09 16:04
Оценка:
Здравствуйте, WolfHound, Вы писали:

C>>И все-таки, есть где-то готовая реализация immutable rope? Очень хотелось бы посмотреть, а то мучают сомнения на счет эфективности.

WH>Я уже третий раз эту ссылку привожу http://www.ibm.com/developerworks/java/library/j-ropes/index.html
Ссылку эту я видел, но исходника я там не нашел. Плохо искал? И хотелось бы все-таки .NET реализацию увидеть...
Re[43]: Ну ты вообще многого не видишь... ;)
От: WolfHound  
Дата: 08.06.09 16:08
Оценка: 2 (1)
Здравствуйте, criosray, Вы писали:

C>Ссылку эту я видел, но исходника я там не нашел. Плохо искал?

2 клика: http://ahmadsoft.org/ropes/release.html

C>И хотелось бы все-таки .NET реализацию увидеть...

Незнаю не искал.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[43]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 08.06.09 16:21
Оценка: 2 (1)
Здравствуйте, criosray, Вы писали:

C>Ссылку эту я видел, но исходника я там не нашел. Плохо искал? И хотелось бы все-таки .NET реализацию увидеть...


Например, здесь
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[62]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 08.06.09 16:34
Оценка:
Здравствуйте, Serginio1, Вы писали:

K>>Это для вставки. А не для добавления к началу/концу т.е. конкатенации.

S>Может я чего то не понимаю — В чем разница? Так структура мутабельна мы должны выделить новыю ссылку на корень,и от него добраться либо в конец либо в начало,
S>выделяя новую ветку, с модификациу длины?

1) Для конкатенации не нужно добираться в конец или в начало.
2) Быстрый доступ к концу и началу можно организовать с помощью двух "пальцев" указывающих на самый левый и самый правый узлы (удерживать их всегда в первом уровне дерева). Но для конкатенации это не нужно, это нужно если мы хотим чтобы строки у нас были деком с константным доступом.

S>По уму нужно еще сложность балансировки добавлять, т.к. деревья могут вырождаться в двухнапрвленный список.


Это все учтено. Сложность вставки О(1) — амортизированная.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[52]: Ну ты вообще многого не видишь... ;)
От: Erop Россия  
Дата: 08.06.09 16:35
Оценка: :))
Здравствуйте, criosray, Вы писали:

M>>Создают видиость работы Как и большинство программистов, вне зависимости от языка программирования

C>Мы таких не держим.

Ну ты вот, например, тут почти круглосуточно трендишь...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.