Здравствуйте, jenyavb, Вы писали:
C>>>>Похоже, что начинается повальный переход на WPF. J>>> Где? C>>AutoCAD, Visual Studio — первые ласточки из крупного коммерческого софта. J>Иэто "повальный переход"?
Это начало повального перехода и это лучшие продукты в своих категориях, что о многом говорит.
Re[29]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, criosray, Вы писали:
C>Здравствуйте, samius, Вы писали:
S>>Зачем F#-у DLR? Это статически типизированный язык
C>F# может выполняться динамически средствами DLR.
Это предположение, или утверждение?
Re[16]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>Я не знаю, как еще объяснять Сокращать предложения?
Мне лично ничего объяснять не нужно. Твоя позиция мне понятна. Но я не согласен с ней.
H>Не тормозило. Добавили .NET -- стало тормозить. Ну?
По-твоему тормозит изза самого факта наличия .net-кода? Почему оно не может тормозить, скажем, изза новых фич или взаимодействия .net кода интероп нативным?
H>Это я поясняю, что выводы о .NET делались не на основе сравнения Paint.NET и GIMP. А то панимаишь...: H>
Судить о всем дотнете по нескольким приложениям...
Где я говрил что "выводы о .NET делались не на основе сравнения Paint.NET и GIMP"?
Я это говорил про выделенное предложение:
Во-вторых, что касается меня лично, я для себя писал бенчи из области моих задачь и делал сравнения, чтоб понять, надо оно мне или нет. Мне не надо. В-третьих, если в существующих на платформе приложениях наблюдаются схожие проблемы с перформансом (неважно чего, будь то гуй или расчеты), это таки симптоматика.
Причем ты сам утверждал что десктоп-приложений под дотнет практически нет.
Интересно взглянуть, ещё какие бенчи ты делал...
H>Гуй Paint.NET подтормаживает, реактивности нативного нет (о фильтрах уже сказано).
Не замечаю. Что Paint, что янус — ничем не отличаются от нативнго, если конечно не внушатьсебе обратного. Да и WinForms это просто обертка над обычными виндовс-контролами, так что к производительности дотнет-кода оно относится слабо.
H> Гуй WLW еще как подтормаживает. Гуй Creative Docs .NET вообще капец какой-то (правда у них там что-то свое да еще и с вырвиглазными шрифтами). Последний так вообще тормозит на сколь нибудь сложных документах.
Этим я не пользуюсь.
H> Какие тебе тесты нужны? Что, мне нужно написать аналог Creative Docs.NET, чтоб было чего по-сравнивать?
Зачем мне твои тесты? Меня и так все устраивает. Но если хочется сранивать производительность c++ и .net кода то гораздо логичнее делать это с помощью каких-то идентичных реализаций алгоритмов.
H>Это можно сделать с довольно объемными и сложными алгоритмами, но не в данном случае.
Да с любыми можно сделать, того-же quick-sort'а можно несколько вариантов сделать.
H> Этот алгоритм чисто расчетный, индусить там особо негде (я просто не верю, что они там используют попиксельную адресацию к битмапу SetPixel/GetPixel).
Наиндусить можно где угодно .
H>Другое дело, что .NET может проседать из-за интеропа, хотя счетчик маршалингов крутится весьма слабо.
А какой здесь интероп? Сам же говоришь что это чисто расчетный алгоритм.
H>Хочешь предметного разговора, показывай код Gaussian Blur из Paint.NET, который является проблемой (уж извини, не я сомневаюсь в кривости алгоритма)
Что-то я не смог найти исходники paint.net на их сайте . Похоже он больше не open source?
Re[20]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, criosray, Вы писали:
C>>>>>Похоже, что начинается повальный переход на WPF. J>>>> Где? C>>>AutoCAD, Visual Studio — первые ласточки из крупного коммерческого софта. J>>Иэто "повальный переход"? C>Это начало повального перехода и это лучшие продукты в своих категориях, что о многом говорит.
Кто-о-о-о-о взя-я-я-я-я-л, мой хрустальный шар, не спросив меня-я-я-я-я? (с) Ария
Re[21]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, jenyavb, Вы писали:
H>>Не тормозило. Добавили .NET -- стало тормозить. Ну? J>По-твоему тормозит изза самого факта наличия .net-кода? Почему оно не может тормозить, скажем, изза новых фич или взаимодействия .net кода интероп нативным?
Из-за новых фичь конечно может (вопрос лишь в том, много ли там новых фичь), и из-за интеропа тоже, но только интероп это не проблема нативного кода, а таки необходимость менеджед платформы в нативной среде.
H>>Это я поясняю, что выводы о .NET делались не на основе сравнения Paint.NET и GIMP. А то панимаишь...: H>>
Судить о всем дотнете по нескольким приложениям...
J>Где я говрил что "выводы о .NET делались не на основе сравнения Paint.NET и GIMP"? J>Я это говорил про выделенное предложение: J>
J>Во-вторых, что касается меня лично, я для себя писал бенчи из области моих задачь и делал сравнения, чтоб понять, надо оно мне или нет. Мне не надо. В-третьих, если в существующих на платформе приложениях наблюдаются схожие проблемы с перформансом (неважно чего, будь то гуй или расчеты), это таки симптоматика.
Разобрались. Чудно.
J>Причем ты сам утверждал что десктоп-приложений под дотнет практически нет.
Да, их практически нет. Но у тех, что есть в области моей досягаемости, на моем десктопе тобишь, (два из трех, к слову сказать от МС ) наблюдаются схожие "проблемы" (конечно легкое подтормаживание не есть проблема, но что делать с осадочком...).
J>Интересно взглянуть, ещё какие бенчи ты делал...
Бенчи делались давно, когда я только рассматривал вопрос перехода на .NET. Кода с тех пор не сохранилось. Просто посмторел скорость чистых вычислений, скорость работы строк (да, я не юзал StringBuilder), помониторил GC. В общем, ничего особенного.
H>>Гуй Paint.NET подтормаживает, реактивности нативного нет (о фильтрах уже сказано). J>Не замечаю. Что Paint, что янус — ничем не отличаются от нативнго, если конечно не внушатьсебе обратного. Да и WinForms это просто обертка над обычными виндовс-контролами, так что к производительности дотнет-кода оно относится слабо.
Уж поверь, у меня нет предубеждения против .NET, но если я чувствую тормоза гуя, значит они есть, для меня это факт. По поводу Януса я ничего сказать не могу, ибо не пользуюсь. Мамут, как-то говорил, что нативный аналог Януса, Avalon, более отзывчив.
H>> Гуй WLW еще как подтормаживает. Гуй Creative Docs .NET вообще капец какой-то (правда у них там что-то свое да еще и с вырвиглазными шрифтами). Последний так вообще тормозит на сколь нибудь сложных документах. J>Этим я не пользуюсь.
К счастью я тоже
H>> Какие тебе тесты нужны? Что, мне нужно написать аналог Creative Docs.NET, чтоб было чего по-сравнивать? J>Зачем мне твои тесты? Меня и так все устраивает. Но если хочется сранивать производительность c++ и .net кода то гораздо логичнее делать это с помощью каких-то идентичных реализаций алгоритмов.
Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
H>>Это можно сделать с довольно объемными и сложными алгоритмами, но не в данном случае. J>Да с любыми можно сделать, того-же quick-sort'а можно несколько вариантов сделать.
Ты начинаешь придираться к словам. Разумеется, даже гланды можно вырезать через жопу, но я думал мы все же реальные ситуации рассматриваем.
H>> Этот алгоритм чисто расчетный, индусить там особо негде (я просто не верю, что они там используют попиксельную адресацию к битмапу SetPixel/GetPixel). J>Наиндусить можно где угодно .
Вот опять...
H>>Другое дело, что .NET может проседать из-за интеропа, хотя счетчик маршалингов крутится весьма слабо. J>А какой здесь интероп? Сам же говоришь что это чисто расчетный алгоритм.
Ну так:
Bitmap Class
Encapsulates a GDI+ bitmap, which consists of the pixel data for a graphics image and its attributes.
Я конечно не в курсе, может Paint.NET, как-то по своему все обрабатывает, но что-то сильно в этом сомневаюсь.
H>>Хочешь предметного разговора, показывай код Gaussian Blur из Paint.NET, который является проблемой (уж извини, не я сомневаюсь в кривости алгоритма) J>Что-то я не смог найти исходники paint.net на их сайте . Похоже он больше не open source?
H>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
Ну давай, не томи, показывай свой идентичный алгоритм на дотнет, который "просядет на порядок, на два" (в десять-сто раз медленнее то бишь).
Re[18]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..
Re[19]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, kuj, Вы писали:
H>>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
kuj>Ну давай, не томи, показывай свой идентичный алгоритм на дотнет, который "просядет на порядок, на два" (в десять-сто раз медленнее то бишь).
Delphi 2009:
Var
sw : TStopwatch;
s : String; // юникодIndex : Integer;
begin
sw.Start;
For Index := 1 To 100000 Do
s := s + 'c1';
sw.Stop;
WriteLn('string.append: elapsed ', sw.ElapsedTime, ' (', Length(s), ')');
end.
Результат (миллисекунды!):
string.append: elapsed 5 (200000)
C#:
using System;
using System.Diagnostics;
using System.Text;
class _
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();
var s = "";
stopwatch.Start();
for (int i = 0; i < 100000; i++)
{
s = s + "c1";
}
stopwatch.Stop();
Console.WriteLine("append: elapsed {0}", stopwatch.Elapsed);
}
}
Результат (секунды):
append: elapsed 00:00:33.2849479
Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
Re[19]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, criosray, Вы писали:
H>>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
C>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..
Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.
Re[20]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
Я ржал. С каких пор строки Delphi стали immutable?
Слив засчитан. ;]
Re[20]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>>>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
C>>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..
H>Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.
То есть обычные строки делфи с задачей поиска-замены справляются на уровне дотнетовского стрингбилдера?
Re[24]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, criosray, Вы писали:
C>>>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..
H>>Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.
C>То есть обычные строки делфи с задачей поиска-замены справляются на уровне дотнетовского стрингбилдера?
Где я это утверждал?
Re[21]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, kuj, Вы писали:
H>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
kuj>Я ржал. С каких пор строки Delphi стали immutable?
kuj>Слив засчитан. ;]
Ты перестал принимать лекарства?
Re[22]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
kuj>>Я ржал. С каких пор строки Delphi стали immutable?
kuj>>Слив засчитан. ;]
H>Ты перестал принимать лекарства?
На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]
Re[23]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, kuj, Вы писали:
H>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
kuj>>>Я ржал. С каких пор строки Delphi стали immutable?
kuj>>>Слив засчитан. ;]
H>>Ты перестал принимать лекарства?
kuj>На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]
Читать и думать, думать и читать. В общем, я выделил для танкистов
Re[24]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично. H>Читать и думать, думать и читать. В общем, я выделил для танкистов
Понимаешь, идентичен — это не значит что код должен выглядеть так-же, он должен делать ту-же самую работу. Реализачия строк в .net и Delphi совершенно разная внутри, так что соврал ты, когда говорил что "тоже против таких сравнений".
Re[18]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>>>Не тормозило. Добавили .NET -- стало тормозить. Ну? J>>По-твоему тормозит изза самого факта наличия .net-кода? Почему оно не может тормозить, скажем, изза новых фич или взаимодействия .net кода интероп нативным? H>Из-за новых фичь конечно может (вопрос лишь в том, много ли там новых фичь),
Видать достаточно, раз покупают.
H>и из-за интеропа тоже, но только интероп это не проблема нативного кода, а таки необходимость менеджед платформы в нативной среде.
Ну здравнствуйте, Капитан...
J>>Причем ты сам утверждал что десктоп-приложений под дотнет практически нет. H>Да, их практически нет. Но у тех, что есть в области моей досягаемости, на моем десктопе тобишь, (два из трех, к слову сказать от МС )
А потом говорят что в МС .net сами не используют, а только кормят народу...
H>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET.
Вот это и будет неидентичным сравнением.
H>А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм.
Как же ты сравниваешь их производительность, если не знаешь, как они реализованы?
H>Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.
Если и можно, то пока-что нафиг не надо, потому что все эти бенчи где дотнет проигрывает на порядок оказываются обычным говнокодом.
H>>>Это можно сделать с довольно объемными и сложными алгоритмами, но не в данном случае. J>>Да с любыми можно сделать, того-же quick-sort'а можно несколько вариантов сделать. H>Ты начинаешь придираться к словам.
H> Разумеется, даже гланды можно вырезать через жопу, но я думал мы все же реальные ситуации рассматриваем.
В реальности так и есть. Сначала пишется просто код (не оязательно плохой), потом, если оказывается что он тормозит и есть ресурсы на его оптимизацию — занимаются оптимизацией. Если бы все сразу оптимально писалось — у нас всё бы летало уже давно.
H>Ну так: H>
Bitmap Class
H>Encapsulates a GDI+ bitmap, which consists of the pixel data for a graphics image and its attributes.
H>Я конечно не в курсе, может Paint.NET, как-то по своему все обрабатывает, но что-то сильно в этом сомневаюсь.
Скорее всего именно по-своему.
H>>>Хочешь предметного разговора, показывай код Gaussian Blur из Paint.NET, который является проблемой (уж извини, не я сомневаюсь в кривости алгоритма) J>>Что-то я не смог найти исходники paint.net на их сайте . Похоже он больше не open source? H>Для версии 3.05 есть тут.
Там довольно большой для форума кусок кода, сюда приводить не буду, кому интересно посмотрят файл Effects/BlurEffect.cs. Только нужно сравнивать его с гимповским кодом, а кто это будет делать — .
Re[24]: Коробочные продукты на .NET (НЕ для программистов/ад
H>>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.
kuj>>>>Я ржал. С каких пор строки Delphi стали immutable?
kuj>>>>Слив засчитан. ;]
H>>>Ты перестал принимать лекарства?
kuj>>На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]
H>Читать и думать, думать и читать. В общем, я выделил для танкистов
Еще раз, "танкист", открой исходник string operator+ и сравни "идентичность алгоритма" с конкатенацией строк делфи. Я тебе уже два больших хинта дал, а ты все продолжаешь твердить ахинею.