Re[19]: Коробочные продукты на .NET (НЕ для программистов/ад
От: criosray  
Дата: 13.06.09 16:47
Оценка:
Здравствуйте, jenyavb, Вы писали:

C>>>>Похоже, что начинается повальный переход на WPF.

J>>> Где?
C>>AutoCAD, Visual Studio — первые ласточки из крупного коммерческого софта.
J>Иэто "повальный переход"?
Это начало повального перехода и это лучшие продукты в своих категориях, что о многом говорит.
Re[29]: Коробочные продукты на .NET (НЕ для программистов/ад
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.06.09 16:52
Оценка:
Здравствуйте, criosray, Вы писали:

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


S>>Зачем F#-у DLR? Это статически типизированный язык


C>F# может выполняться динамически средствами DLR.


Это предположение, или утверждение?
Re[16]: Коробочные продукты на .NET (НЕ для программистов/ад
От: jenyavb  
Дата: 13.06.09 17:15
Оценка: +1
Здравствуйте, 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 (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 17:42
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>>>Похоже, что начинается повальный переход на WPF.

J>>>> Где?
C>>>AutoCAD, Visual Studio — первые ласточки из крупного коммерческого софта.
J>>Иэто "повальный переход"?
C>Это начало повального перехода и это лучшие продукты в своих категориях, что о многом говорит.

Кто-о-о-о-о взя-я-я-я-я-л, мой хрустальный шар, не спросив меня-я-я-я-я? (с) Ария
Re[21]: Коробочные продукты на .NET (НЕ для программистов/ад
От: kuj  
Дата: 13.06.09 17:56
Оценка:
Здравствуйте, hattab, Вы писали:



H>Кто-о-о-о-о взя-я-я-я-я-л, мой хрустальный шар, не спросив меня-я-я-я-я? (с) Ария


Делфи и Ария это по нашему- по пацански! Узнаю хаттаба...
Re[17]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 18:39
Оценка: -2 :)
Здравствуйте, 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?

Для версии 3.05 есть тут.
Re[18]: Коробочные продукты на .NET (НЕ для программистов/ад
От: kuj  
Дата: 13.06.09 18:45
Оценка:
Здравствуйте, hattab, Вы писали:


H>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.


Ну давай, не томи, показывай свой идентичный алгоритм на дотнет, который "просядет на порядок, на два" (в десять-сто раз медленнее то бишь).
Re[18]: Коробочные продукты на .NET (НЕ для программистов/ад
От: criosray  
Дата: 13.06.09 18:59
Оценка:
Здравствуйте, hattab, Вы писали:

H>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.


Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..
Re[19]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 19:17
Оценка: -3 :)
Здравствуйте, 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 (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 19:19
Оценка:
Здравствуйте, criosray, Вы писали:

H>>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.


C>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..


Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.
Re[20]: Коробочные продукты на .NET (НЕ для программистов/ад
От: kuj  
Дата: 13.06.09 19:46
Оценка:
Здравствуйте, hattab, Вы писали:

H>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.


Я ржал. С каких пор строки Delphi стали immutable?

Слив засчитан. ;]
Re[20]: Коробочные продукты на .NET (НЕ для программистов/ад
От: criosray  
Дата: 13.06.09 20:07
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>Понимаешь какое дело, не всегда можно в точности повторить алгоритм, скажем, ввиду особенностей реализации некоторых примитивов. Взять хотя бы последнюю синтетику со сравнением строк. Взять конкатенацию. Обычные строки Delphi идут наровне со специализированным классом StringBuilder в .NET. А если использовать идентичный алгоритм -- взять строки .NET? Просядет .NET на порядок? На два? Я не в курсе, как реализованы строки в .NET, может там чего-то страшное делается и ты снова скажешь, что это неидентичный алгоритм. Я это к чему говорю, доипаться можно и до столба, в результате придя к сравнению mov ax, bx.


C>>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..


H>Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.


То есть обычные строки делфи с задачей поиска-замены справляются на уровне дотнетовского стрингбилдера?
Re[24]: Коробочные продукты на .NET (НЕ для программистов/ад
От: Sheridan Россия  
Дата: 13.06.09 20:31
Оценка:
О как, целых два раза на мой пост ответил
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[21]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 21:51
Оценка:
Здравствуйте, criosray, Вы писали:

C>>>Напомните на сколько порядков делфийский стрингбилдер оказался медленнее на операции полнотекстового поиска-замены?..


H>>Дельфийский StringBuilder это ошибка природы. Мало того, что написан через жопу, так еще и применимость его стремиться к нулю.


C>То есть обычные строки делфи с задачей поиска-замены справляются на уровне дотнетовского стрингбилдера?


Где я это утверждал?
Re[21]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 13.06.09 22:03
Оценка:
Здравствуйте, kuj, Вы писали:

H>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.


kuj>Я ржал. С каких пор строки Delphi стали immutable?


kuj>Слив засчитан. ;]


Ты перестал принимать лекарства?
Re[22]: Коробочные продукты на .NET (НЕ для программистов/ад
От: kuj  
Дата: 13.06.09 22:34
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.


kuj>>Я ржал. С каких пор строки Delphi стали immutable?


kuj>>Слив засчитан. ;]


H>Ты перестал принимать лекарства?


На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]
Re[23]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 14.06.09 05:31
Оценка:
Здравствуйте, kuj, Вы писали:

H>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.


kuj>>>Я ржал. С каких пор строки Delphi стали immutable?


kuj>>>Слив засчитан. ;]


H>>Ты перестал принимать лекарства?


kuj>На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]


Читать и думать, думать и читать. В общем, я выделил для танкистов
Re[24]: Коробочные продукты на .NET (НЕ для программистов/ад
От: jenyavb  
Дата: 14.06.09 07:06
Оценка: +1
Здравствуйте, hattab, Вы писали:

H>>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.

H>Читать и думать, думать и читать. В общем, я выделил для танкистов
Понимаешь, идентичен — это не значит что код должен выглядеть так-же, он должен делать ту-же самую работу. Реализачия строк в .net и Delphi совершенно разная внутри, так что соврал ты, когда говорил что "тоже против таких сравнений".
Re[18]: Коробочные продукты на .NET (НЕ для программистов/ад
От: jenyavb  
Дата: 14.06.09 07:37
Оценка:
Здравствуйте, 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 (НЕ для программистов/ад
От: kuj  
Дата: 14.06.09 07:41
Оценка:
Здравствуйте, hattab, Вы писали:


H>>>>>Порядок сам посчитаешь? Алгоритм идентичен. Проделываемая работа нет. Вот об этом я и говорил, что стремиться к идентичности весьма утопично.


kuj>>>>Я ржал. С каких пор строки Delphi стали immutable?


kuj>>>>Слив засчитан. ;]


H>>>Ты перестал принимать лекарства?


kuj>>На здоровье не жалуюсь, а вот тебе не помешало бы портфмить на предмет реализации string operator+ дабы не выставлять себя полным ламером в следующий раз. ;]


H>Читать и думать, думать и читать. В общем, я выделил для танкистов


Еще раз, "танкист", открой исходник string operator+ и сравни "идентичность алгоритма" с конкатенацией строк делфи. Я тебе уже два больших хинта дал, а ты все продолжаешь твердить ахинею.

Да, верно говорят, что делфи разжижает мозги.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.