Re[30]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 09:10
Оценка:
Здравствуйте, VladD2, Вы писали:

PE>>Можно, никто не спорит, вопрос в том, как именно. Дяди за МС по нашему поводу пока ничего не отвечают. Даже общих рекомендаций дать не могут.


VD>А профайлер по этому поводу что говорит?


На загрузке тормоза в CreateDelegate и RaizeDeserilizationEvent.
На сохранение — создается в разы больше WriteObjectInfo чем это надо.
Далее — SerilizationInfo.AddValue подтормаживает.

Я думаю, что нормальный путь — выдрать сериалайзер из ротора и кой какие пместа оптимизировать. Но неясно, как это толкнуть в обиход. Это есть нарушение.
А нам чу что придется написать примерно такой же форматтер.
Re[31]: C++ versus C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.03.04 11:25
Оценка: 1 (1)
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, VladD2...

С вашего позволения:

Routine Name                                         Time           Time with Children  Shared Time          Hit Count

DatasetStorageEngine::Load                           0.00665421125  18.7413820525       0.0355054458169608      36
ProductLibraryManager::LoadProdLibWorker             0              17.78354583875      0                        1
ProductLibDataSetPersist::DsLoad                     0.00084167625  16.797909685        0.00501060111515893      1
DataSetLoader::Load                                  0.00016143625  16.3967278325       0.000984563820593623     1
TabInfo::Load                                        1.44434606875  16.38647400125      8.81425783630952        77
<Garbage Collector>                                 11.63491199375  11.63491199375    100                      308
<JIT Compiler>                                      11.48328216     11.485244375       99.9829153395789      13864
ZipStorageEngine::Load                               3.43084997875   8.962737435       38.2790414606182      5
PersistManager::Load                                 6.76625E-6      8.9577977525       7.55347484610448E-5  4
PropInfo::Load                                       1.00993600125   8.8353232525      11.430662720396       59387
DocumentManager::GetNetworkObject                    3.855E-6        8.7928121725       4.38426287787282E-5  2
ValidatableEventSource::SetValidatableProperty       0.32878773      7.88257587         4.1710696531488      43581
EventSourceObject::GetPropertyDescriptionInternal    0.10383751375   7.5208579025       1.3806604924085      87539
EventSourceObject::BuildPropertyDescriptionMap       6.34245147625   7.469254285       84.9141190572012      15229
EventSourceObject::GetPropertyDescriptionMapInternal 0.0282405075    7.4341745525       0.379874151468547    88041
IndexableNamedObject::set_Name                       0.1251015475    7.386138655        1.69373407870313     12125
EventSourceObject::GetPropertyDescription            0.0155469175    6.36041299         0.244432516008681    62998
AppController::RunWizard                             0.00045296125   6.18196760125      0.00732713723553664      1
ScriptManager::ExecuteFile                           0.00122776      6.17574920875      0.0198803409675456       1
ScriptManager::ExecuteString                         3.77125E-5      6.16964905875      0.00061125843043722      1
SAXEngine::VPI.NC.Scripting.IScriptEngine.Execute    1.365692915     6.1415065075      22.2370995346535          1
DocumentManager::SaveDocument                        6.206E-5        5.70805727375      0.00108723506131235      1
DocumentManager::Save                                0.00057522625   5.69897192         0.0100935091113767       1
ZipStorageEngine::Store                              2.32114413375   4.8816617725      47.548237504404           6
PersistManager::Store                                3.919625E-5     4.881230335        0.00080299939379935      4
DocumentManager::OpenDocument                        0.05199691375   3.13453559625      1.65883947249495         1
DocumentManager::OpenDoc                             0.00052821      2.9891938675       0.017670650463423        1
BaseCollection::.ctor                                0.000103765     2.0311321375       0.00510872720116172   7892
ReadOnlyBaseCollection::.ctor                        0.011396135     2.027203835        0.56216029208528      7892
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 11:36
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Можно попробовать хотя бы преобразование фурье набомбить.


Честно говоря преобразование фурье лично меня волнует мало, поскольку последние лет пять ничем похожим заниматься не приходилось, а когда приходилось то алгоритмы эти реализовывались в железке.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[31]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 11:44
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>В какие акселераторы ? Туда зашивают только то, что хорошо разжевано, канонизировано и стандартизировано. Окромя этого есть много алгоритмо оработки изображений. Распознавание например. А с оработкой звука как ?


FPGA тебя спасет
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[14]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 11:47
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Честно говоря преобразование фурье лично меня волнует мало, поскольку последние лет пять ничем похожим заниматься не приходилось, а когда приходилось то алгоритмы эти реализовывались в железке.


Послушаешь тебя и Влада — все алгоритмы в железе...Интересно, как у меня работают проги звуковые, еси стоит только кодек AC97 ?
Не пойму, чем мои знакомые прогреры-звукари занимаются — http://audio4fun.com/.
Все ведь в железе. Наверное в инсталятор входит и звуковуха мега-профессиональная.
Качаешь из инета, а при инсталяции программно втыкается в PCI слот.
А на ноутуке твоем много железа с аппаратным преоразованием того же фурье ?

Тогда питч-шифт заимплементи, если фурье не нравится.
Re[32]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 11:50
Оценка:
Здравствуйте, AndrewVK, Вы писали:

PE>>В какие акселераторы ? Туда зашивают только то, что хорошо разжевано, канонизировано и стандартизировано. Окромя этого есть много алгоритмо оработки изображений. Распознавание например. А с оработкой звука как ?


AVK>FPGA тебя спасет


Да понятно. А Саундфорджем или Диаммондом от audio4fun он тоже идет ?
Re[32]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 11:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>С вашего позволения:


Спасибо, а я и не догадался отформатировать.

Жирным отмечены точки, которые невозможно оптимизировать в силу некоторых особенностей.
SetValidatableProperty — автоматическая валидация. Тут рефлексия.
GetPropertyDescriptionMapInternal — создаются тучи делегатов.
set_Name — имя объекта должно быть уникальным, следовательно нужно сообщеть буде это не так.


S>
S>Routine Name                                         Time           Time with Children  Shared Time          Hit Count

S>DatasetStorageEngine::Load                           0.00665421125  18.7413820525       0.0355054458169608      36
S>ProductLibraryManager::LoadProdLibWorker             0              17.78354583875      0                        1
S>ProductLibDataSetPersist::DsLoad                     0.00084167625  16.797909685        0.00501060111515893      1
S>DataSetLoader::Load                                  0.00016143625  16.3967278325       0.000984563820593623     1
S>TabInfo::Load                                        1.44434606875  16.38647400125      8.81425783630952        77

S><Garbage Collector>                                 11.63491199375  11.63491199375    100                      308
S><JIT Compiler>                                      11.48328216     11.485244375       99.9829153395789      13864
S>ZipStorageEngine::Load                               3.43084997875   8.962737435       38.2790414606182      5
S>PersistManager::Load                                 6.76625E-6      8.9577977525       7.55347484610448E-5  4
S>PropInfo::Load                                       1.00993600125   8.8353232525      11.430662720396       59387
S>DocumentManager::GetNetworkObject                    3.855E-6        8.7928121725       4.38426287787282E-5  2
S>ValidatableEventSource::SetValidatableProperty       0.32878773      7.88257587         4.1710696531488      43581
S>EventSourceObject::GetPropertyDescriptionInternal    0.10383751375   7.5208579025       1.3806604924085      87539
S>EventSourceObject::BuildPropertyDescriptionMap       6.34245147625   7.469254285       84.9141190572012      15229
S>EventSourceObject::GetPropertyDescriptionMapInternal 0.0282405075    7.4341745525       0.379874151468547    88041
S>IndexableNamedObject::set_Name                       0.1251015475    7.386138655        1.69373407870313     12125
S>EventSourceObject::GetPropertyDescription            0.0155469175    6.36041299         0.244432516008681    62998
S>AppController::RunWizard                             0.00045296125   6.18196760125      0.00732713723553664      1
S>ScriptManager::ExecuteFile                           0.00122776      6.17574920875      0.0198803409675456       1
S>ScriptManager::ExecuteString                         3.77125E-5      6.16964905875      0.00061125843043722      1
S>SAXEngine::VPI.NC.Scripting.IScriptEngine.Execute    1.365692915     6.1415065075      22.2370995346535          1
S>DocumentManager::SaveDocument                        6.206E-5        5.70805727375      0.00108723506131235      1
S>DocumentManager::Save                                0.00057522625   5.69897192         0.0100935091113767       1
S>ZipStorageEngine::Store                              2.32114413375   4.8816617725      47.548237504404           6
S>PersistManager::Store                                3.919625E-5     4.881230335        0.00080299939379935      4
S>DocumentManager::OpenDocument                        0.05199691375   3.13453559625      1.65883947249495         1
S>DocumentManager::OpenDoc                             0.00052821      2.9891938675       0.017670650463423        1
S>BaseCollection::.ctor                                0.000103765     2.0311321375       0.00510872720116172   7892
S>ReadOnlyBaseCollection::.ctor                        0.011396135     2.027203835        0.56216029208528      7892
S>
Re[32]: C++ versus C#
От: naje  
Дата: 03.03.04 11:58
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Plutonia Experiment, Вы писали:


PE>>В какие акселераторы ? Туда зашивают только то, что хорошо разжевано, канонизировано и стандартизировано. Окромя этого есть много алгоритмо оработки изображений. Распознавание например. А с оработкой звука как ?


AVK>FPGA тебя спасет


HandleC, SystemC
в нашей конторе железки разрабатываются на С++(не HandleC, не SystemC) со спец. фреймворком, а потом с помощью одного же кода всё тестируется, генерится синтезабельный vhdl и програмки для верефикации уже готовых девайсов (код пишется один раз), на С# такого фреймворка сделать нельзя
так что тут аргумент в пользу С++
Re[33]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 12:06
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Да понятно. А Саундфорджем или Диаммондом от audio4fun он тоже идет ?


Обычно наоборот — дивайс идет в комплекте с ними.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[33]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 12:06
Оценка:
Здравствуйте, naje, Вы писали:

N>HandleC, SystemC

N>в нашей конторе железки разрабатываются на С++(не HandleC, не SystemC) со спец. фреймворком, а потом с помощью одного же кода всё тестируется, генерится синтезабельный vhdl и програмки для верефикации уже готовых девайсов (код пишется один раз), на С# такого фреймворка сделать нельзя
N>так что тут аргумент в пользу С++

Фремворк на шарпе создать еще проще. НО ! В программах обработки звука для простых обывателей никогда не было, нет и никогда не бует аппаратных алгоритмов. Продвинутый программный алгоритм всегда будет раотать быстрее железа. Фурье — довольно меденный агоритм.
Применения в ПО его избегают именно из за тормознутости. Можно быстрее — но больше памяти сожрешь. А вот в железо фурие закатать — проще не придумаешь. Но не всегда можно использовать аппаратные воможности. Для вывода звука на колонки можно кое что впихнуть в звуковуху.
Но чтото я ни разу не видел в продаже аппратный ужиматель(USB или PCI или PCMCIA) в МП3, ОГГ к примеру для моего компутера. И не просто ужиматели, а чтобы можно было гибко настраивать, психоаккустику менять и тд. и тд.
Так что всякие FPGA можно сразу засунуть в одно место.
Re[34]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 12:11
Оценка:
Здравствуйте, AndrewVK, Вы писали:

PE>>Да понятно. А Саундфорджем или Диаммондом от audio4fun он тоже идет ?


AVK>Обычно наоборот — дивайс идет в комплекте с ними.


Это понятно. Но как это чуду раотает с кодеком AC97 ? Не программно ли ?
обрабатывать кусок файла в сто мегов очень накладно на железяке. Дорого это. А недавно и вовсе невозможно было.

Пример — из песни выдрать вокал, или шум убрать, или эквалайзить некисло, или психоаккустику наложить, или вока этот самый заменить на другой.
Громкость сменить, нормализировать, клики поубирать, тишину вырезать, искажения выровнять.

Все это есть в железе ? Все это делается именно программно и не просто программно, а на С++. Иногда еще ассемблер подключается для особохитрых операций.
Re[33]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 12:16
Оценка:
Здравствуйте, naje, Вы писали:

N>так что тут аргумент в пользу С++


Нет, это аргумент в пользу выбора подходящего решения.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[15]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 12:16
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Не пойму, чем мои знакомые прогреры-звукари занимаются — http://audio4fun.com/.


Рынок только у твоих знакомых ну очень маленький.

PE>А на ноутуке твоем много железа с аппаратным преоразованием того же фурье ?


Нет. А нафига оно мне?
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[35]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 12:16
Оценка: -1
Здравствуйте, Plutonia Experiment, Вы писали:

PE>На данный момент у нас 12 мегов шарпового кода. Минус комментарии, заголовки получтся 8.


Заголовки в шарповом коде это что то интересное.

PE>А вот как ускорит создани делегатов неизвестно.


Почему? Заменить их на интерфейсы.

PE>Колбек интерфейсы влекут массу геморроя за собой.


Например?
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[34]: C++ versus C#
От: naje  
Дата: 03.03.04 12:22
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

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



PE> Фремворк на шарпе создать еще проще. НО !


такой как тут невозможно просто на шарпе, нужно разрабатывать ещё один язык для нета, впринципе одно из решений

PE> В программах обработки звука для простых обывателей никогда не было, нет и никогда не бует аппаратных алгоритмов. Продвинутый программный алгоритм всегда будет раотать быстрее железа. Фурье — довольно меденный агоритм.

что значит продвинутый?
PE>Применения в ПО его избегают именно из за тормознутости. Можно быстрее — но больше памяти сожрешь. А вот в железо фурие закатать — проще не придумаешь. Но не всегда можно использовать аппаратные воможности. Для вывода звука на колонки можно кое что впихнуть в звуковуху.
PE>Но чтото я ни разу не видел в продаже аппратный ужиматель(USB или PCI или PCMCIA) в МП3, ОГГ к примеру для моего компутера. И не просто ужиматели, а чтобы можно было гибко настраивать, психоаккустику менять и тд. и тд.

кодеков G.7xx немеренно всяких, и вабще DSP'эшек выполненных в железе (не на DSP контроллерах) немеренно всяких, и в последнее время всё больше появляется

PE>Так что всякие FPGA можно сразу засунуть в одно место.


это зря, гораздо дешевле и эффективнее поставить в какой-нибудь голосовой сервер(например) парочку fpga'шников (по 200 дол+стоимость шины), чем штуки 4 (а скорее всего больше) лишних процессора(+шина гораздо больше стоить будет чем для fpga)
Re[35]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.03.04 12:36
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Это понятно. Но как это чуду раотает с кодеком AC97 ? Не программно ли ?

PE>обрабатывать кусок файла в сто мегов очень накладно на железяке. Дорого это.

Вот потому и говорю что FPGA рулит. Универсальная и недорогая железка. Менее универсально для обработки звука я бы использовал DSP. Стоимость — единицы долларов.

PE>Пример — из песни выдрать вокал, или шум убрать, или эквалайзить некисло, или психоаккустику наложить, или вока этот самый заменить на другой.

PE>Громкость сменить, нормализировать, клики поубирать, тишину вырезать, искажения выровнять.

PE>Все это есть в железе ?


Да.

PE> Все это делается именно программно и не просто программно, а на С++.


Знаешь, эти задачки на АС97 ничто иное как баловство. Обсуждать промышленные платформы в аспекте баловства неинтересно.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[16]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 13:33
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Рынок только у твоих знакомых ну очень маленький.

PE>>А на ноутуке твоем много железа с аппаратным преоразованием того же фурье ?

AVK>Нет. А нафига оно мне?


Запусти SoundForge или VCS Diamond и убедись, что весь звук обрабатывается программно.

Обраотка звука — это не спецэффекты, которые в курточку засунуть можно. Это математика
Re[16]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 13:36
Оценка:
Здравствуйте, AndrewVK, Вы писали:

PE>>Не пойму, чем мои знакомые прогреры-звукари занимаются — http://audio4fun.com/.

AVK>Рынок только у твоих знакомых ну очень маленький.

Т.е. ты винампоп не пользуешься ? Филмы не смотришь ? Эквалайзер в винампе не крутишь ?
И слушаешь только вавки, а не мп3 и не огг ?
Re[36]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.03.04 13:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

PE>>На данный момент у нас 12 мегов шарпового кода. Минус комментарии, заголовки получтся 8.


AVK>Заголовки в шарповом коде это что то интересное.


Очень смешно, рядовой Шуник. Каждый файл имеет в коментариях описание, список авторов, копирайт и тд и тд.

PE>>А вот как ускорит создани делегатов неизвестно.

AVK>Почему? Заменить их на интерфейсы.
Тогда в другом месте тормоза.

PE>>Колбек интерфейсы влекут массу геморроя за собой.

AVK>Например?

Все это нужно писать руками. Объект может быть подписан на хрензнает сколько эвентов жругих объектов. Придется писать весь этот механизм.
Всего 7 типов эвентов. Объект может быть подписан в среднем на 20...30 других объектов и коллекций. Если делать колбеками, то ...
Re[17]: C++ versus C#
От: naje  
Дата: 03.03.04 13:43
Оценка: :)
Здравствуйте, Plutonia Experiment, Вы писали:

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


AVK>>Рынок только у твоих знакомых ну очень маленький.

PE>>>А на ноутуке твоем много железа с аппаратным преоразованием того же фурье ?

AVK>>Нет. А нафига оно мне?


PE>Запусти SoundForge или VCS Diamond и убедись, что весь звук обрабатывается программно.


PE>Обраотка звука — это не спецэффекты, которые в курточку засунуть можно. Это математика


профессиональное создание музыки это не SoundForge или VCS Diamond, там как-раз много чего апаратного (как впринципе и профессиональное слушанье )
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.