-
Есть такой ?где скачать?
-
Wine ?
-
Lazarus ?
-
Idiot ?
-
> YurikGL © (10.12.08 21:14) [1] > Wine ?
7ка еще пойдет а вот более поздние заточены на дотнет с сдк а вот енто фик
-
Если ты хочешь создавать качественные кросплатформенные приложения, у тебя есть такой выбор: С++, если приложение должно активно использовать возможности системы (для С++ можно найти много библиотек абстракции от этой самой системы) и Java в противном случае. Поэтому, я ненавязчиво агитирую тебя забыть об этом страшном рассаднике глюков, в котором потомки TObject не могут наследовать интерфейсы, нельзя делать миксины, и вообще сколько-нибудь вменяемо объектно проектировать, и переходить на C++/Java.
-
> Vampire Hunter D. (10.12.08 21:40) [5]
Правильно, давно пора переходить на рассадник глюков C++ и тормоз Java!
-
С + glib наш выбор :)
-
> KilkennyCat © (10.12.08 21:23) [3] > > Idiot ?
Гугле говорит что нет такого IDE.
-
> DVM © (10.12.08 21:50) [6] > > > Vampire Hunter D. (10.12.08 21:40) [5] > > Правильно, давно пора переходить на рассадник глюков C++
В С++ нужно библиотеки самому подбирать, а не кушать то что дают. Delphi нормально работает только с Win32 да и то криво, если копнуть поглубже. Позорище, Unicode только нормально (коробки) заработал только с D2009, позорище.
Уж лучше Python чем Delphi. По поводу оконной библиотеки - wxPython.
-
> В С++ нужно библиотеки самому подбирать, а не кушать то > что дают.
Да я что спорю. Но это и в Delphi возможно вообще то.
> Delphi нормально работает только с Win32 да и то криво, > если копнуть поглубже
Насчет глубже хотелось бы поподробнее.
> Позорище, Unicode только нормально (коробки) заработал только > с D2009, позорище.
Это да, но все же заработал.
Под линукс Си однозначно. Он для UNIX родной.
-
> DVM © (10.12.08 21:50) [6] > Правильно, давно пора переходить на рассадник глюков C++ > и тормоз Java!
Java не тормозит. Доказано Tommy.
-
-
> Java не тормозит.
Угу. Он просто работает несколько неспеша.
-
> iZEN (10.12.08 23:21) [12]
> Прежде чем делать далеко идущие выводы из запущенного в > конце 90-х годов апплета
Да я выводы делаю исключительно из своего (в java пока очень небогатого опыта 2 месяца :) Может я и не прав. Но пока все что мне удалось написать самому и все из написанного другими в плане скорости работы меня к сожалению не впечатлило. Ну уступает он в скорости нативным win32 приложениям на том же Delphi.
-
> iZEN (10.12.08 23:21) [12]
Ээээ.. а что с этим делать то? Это ж картинка?
-
> iZEN
И все же, я никогда не соглашусь с тем, что код java выполняемый на виртуальной машине java будет столь же быстр, что и обычный компилируемый код. Да он будет работать быстро на современной машине, да не будет заметных тормозов, но отставание от нативного кода будет и значительное процентов 30-50. Это существенно для многих задач.
-
> Городской Шаман (10.12.08 22:55) [9]
> В С++ нужно библиотеки самому подбирать, а не кушать то > что дают. Delphi нормально работает только с Win32 да и > то криво, если копнуть поглубже. Позорище, Unicode только > нормально (коробки) заработал только с D2009, позорище. >
T.e. в c++ вы подбираете библиотеки, а в delphi "кушаете то, что дают". И на основании этого делаете выводы, ну-ну. Между прочим, Delphi поддерживает юникод ещё, вроде, со второй версии. А vcl, это как раз "то, что дают"
-
> iZEN (10.12.08 23:21) [12]
> http://izen.dev.juga.ru/image/FreeBSD-JavaFX-StopWatch.png
Посмотрел. Что могу сказать, красиво. И не тормозит. Но еще могу сказать, что в момент выполнения сего чуда загрузка системы процессом java был от 20 до 50 процентов. Да я такое же напишу на Delphi, что оно будет грузить систему на 0-5 % О DX молчу. Или я чего то не понял в этой демонстрашке?
-
> DVM © (10.12.08 23:16) [10] > > > > В С++ нужно библиотеки самому подбирать, а не кушать то > > что дают. > > Да я что спорю. Но это и в Delphi возможно вообще то.
Да? А можно ссылочку на другой, отличный от VCL, GUI-фреймворк для Delphi? А для С++ их около 200, правда нормальных около 10.
> DVM © (10.12.08 23:16) [10] > > > Delphi нормально работает только с Win32 да и то криво, > > если копнуть поглубже > > Насчет глубже хотелось бы поподробнее. >
Наберите в google Delphi и Vista... Если Delphi + Vista64 то это вообще песец.
> DVM © (10.12.08 23:16) [10] > Под линукс Си однозначно. Он для UNIX родной.
Только не C, а C++. Если увлекаться на C++ не языковым выпендрёжом, а результатом работы, то это вполне нормальный язык, без всяких страшилок.
-
> Городской Шаман (11.12.08 00:14) [19] > > > > DVM © (10.12.08 23:16) [10] > > > > > > > В С++ нужно библиотеки самому подбирать, а не кушать > то > > > что дают. > > > > Да я что спорю. Но это и в Delphi возможно вообще то. > > Да? А можно ссылочку на другой, отличный от VCL, GUI-фреймворк > для Delphi? А для С++ их около 200, правда нормальных около > 10.
Да, еще CLX е пойдёт, так как от него Линуксоиды ржут, пальцем у виска крутят и считают всех Delphi-стов ламерами, так оно работает.
-
> А можно ссылочку на другой, отличный от VCL, GUI-фреймворк > для Delphi?
KOL? :) Конечно их почти нет, но это не значит, что они исключены. В конце концов свой написать можно.
> Только не C, а C++
Изначально родным был СИ. И куча софта написано безо всяких плюсов. И сейчас есть куча софта без плюсов. Плюсы потом появились. Собственно я ничего против них не имею.
-
> Noone (10.12.08 20:47) > > Есть такой ?где скачать?
C++, wxWidgets, wxFormBuilder v3.0.
Елси денег не жаль, то C++, QT. The price for Qt on Single Platform is 3,695USD/license, and for Multi OS (including all Win/X11/Mac OS) is 5,295USD/license.
-
> DVM © (10.12.08 23:32) [16] > Да он будет работать быстро на современной > машине, да не будет заметных тормозов, но отставание от > нативного кода будет и значительное процентов 30-50. Это > существенно для многих задач.
Откуда такие цифры 30-50%? Взяты с потолка.
А я тестировал ещё версии Java 1.3.1, 1.4.0, 1.4.2, 1.5 и версии Delphi 6.0, 7.0 на одних и тех же задачах: 1) комбинаторика, 2) различные методы сортировки массивов, 3) конкатенация строк.
Так вот, тесты показали, что 1) и 2) выполняются и там и там одинаково быстро (на уровне погрешности измерений); в тесте 3) Delphi слила Java'е в три раза!
Современные версии Java 6.0 и 6u11 (1.6.x) гораздо быстрее, чем Java 5.0 (1.5). Даже тестировать неудобно — по ощущениям (глаза, руки) заметно.
-
> Городской Шаман (11.12.08 00:14) [19] > Если увлекаться на C++ не языковым выпендрёжом, > а результатом работы, то это вполне нормальный язык, без > всяких страшилок.
Чего ж на C++ до сих пор IDE уровня Eclipse не написали? ;)
-
> iZEN (11.12.08 03:35) [24]
подсказать несколько или сам догадаешься?
-
> boa_kaa © (11.12.08 03:52) [25] > > iZEN (11.12.08 03:35) [24] > > подсказать несколько или сам догадаешься?
Валяй.
-
> boa_kaa © (11.12.08 03:52) [25] > > iZEN (11.12.08 03:35) [24] > > подсказать несколько или сам догадаешься?
Валяй.
-
iZEN (11.12.08 03:35) [24]
Я думаю, вы должны знать про CDT.
-
> Городской Шаман (10.12.2008 22:50:08) [8]
Попробуй другую поисковую систему, Гугл попсовый
-
> DVM (10.12.2008 23:32:16) [16]
Вообще то зря не веришь, я тебе обеспечу гигантское торможение на Ассемблере.
-
> Городской Шаман (11.12.2008 0:18:20) [20]
Да им завидно, поэтому они ржут над всеми, считая всех идиотами, кроме себя.
-
> DVM (11.12.2008 0:43:21) [21]
А я имею, поскольку два плюса.
-
> iZEN (11.12.2008 3:32:23) [23]
Стой а не ты ли это утверждал про 1.5 и теперь сливаешь?
-
> iZEN (11.12.08 03:32) [23]
> Откуда такие цифры 30-50%? Взяты с потолка. > > А я тестировал ещё версии Java 1.3.1, 1.4.0, 1.4.2, 1.5 > и версии Delphi 6.0, 7.0 на одних и тех же задачах: 1) комбинаторика, > 2) различные методы сортировки массивов, 3) конкатенация > строк. > > Так вот, тесты показали, что > 1) и 2) выполняются и там и там одинаково быстро (на уровне > погрешности измерений); > в тесте 3) Delphi слила Java'е в три раза!
А давай потестируем в работе с графикой и интерфесом пользователя? Кстати, приведенный тобой пример в [12] уже свидетельствует не в пользу Java.
-
> iZEN (11.12.08 03:32) [23]
Простая вещь:
1) Загрузка JPEG 1600*1200 неважно откуда (сеть/файл/ит.д.). 2) Декодирование. 3) Поворот на 90 градусов 4) Уменьшение до 800*600 5) Вывод битмапа на поверхность окна
2-5 повторить 1000 раз.
-
> DVM (11.12.2008 10:30:34) [34]
Ага, там не только секундомер не работает, но и скролл бары тоже.
-
а у меня знакомый мужик на фортране написал алгоритм, который потом перевел на дельфи и откомпилировал оба современными компиляторами и фортрановский работает на порядок быстрее там чистая математика + консольный/файловый ввод/вывод
и что? это никоим образом не говорит, что что-то из них лучше или хуже это говорит о том, что для каждой задачи нужны СВОИ ИНСТРУМЕНТЫ, а нете, которые оказались под рукой
-
> Anatoly Podgoretsky © (11.12.08 09:35) [31] > > > Городской Шаман (11.12.2008 0:18:20) [20] > > Да им завидно, поэтому они ржут над всеми, считая всех идиотами, > кроме себя.
По тому как работают программы на Kylix под современными Linux им не завидно им смешно и грустно. Грустно тем, кто использует эти программы, смешно тем кто наблюдает.
Delphi только для Win32. На Линукс проще портировать программу на C#.NET чем на Delphi.
Да и на Win32 преимущества Delphi не в языке, а программном комплексе: - Визуальный редактор интегрированный в IDE(Самый удобный из тех что я видел) - Удобный сode generation/completion что позволяет не горевать по поводу Templates - Очень удобный интегрированный отладчик, где можно просмотреть значение переменной, наведя на неё курсор. Хотя с многопоточной отладкой у Delphi проблемы, на каждый примерно 10 останов в коде потока виснет всё IDE.
Так что переходя на C++, более вероятно, что придется столкнуться только с этими проблемами, хотя в платных IDE они по большему счёту решены.
Вывод - Delphi современный FoxPro, где можно быстро в одиночку нашкрябать еще один учётный проект для малого бизнеса.
-
> Вывод - Delphi современный FoxPro, где можно быстро в одиночку > нашкрябать еще один учётный проект для малого бизнеса.
И когда ж сдохнет оно (она, он) это Делфя.
-
> pasha_golub (11.12.2008 13:31:39) [39]
И появится Эльфа
-
> pasha_golub © (11.12.08 13:31) [39] > > > > Вывод - Delphi современный FoxPro, где можно быстро в > одиночку > > нашкрябать еще один учётный проект для малого бизнеса. > > > И когда ж сдохнет оно (она, он) это Делфя.
Тогда когда и Cobol...
-
> И когда ж сдохнет оно (она, он) это Делфя.
На данный момент существует 2 известных нативных языка С++ и Delphi. С++ уже потихоньку отмирает, поэтому давайте лучше разрешим Delphi жить, все таки это хороший конкурент.
-
Я думал все поймут, что я издеваюсь. Ан нет.
PS Java sucks!
-
> На данный момент существует 2 известных нативных языка С++ > и Delphi.
А C / Objective-C, Python (он тоже компилируеться). Уже не известные языки ? С++ умирает с момента выхода в свет, пока попка живой.
-
> Кто б сомневался © (11.12.08 15:29) [42] > > > > И когда ж сдохнет оно (она, он) это Делфя. > > > На данный момент существует 2 известных нативных языка С++ > и Delphi. > С++ уже потихоньку отмирает, поэтому давайте лучше разрешим > Delphi жить, все таки это хороший конкурент.
Вот когда Embacerdo выпустит Delphi для микроконтроллеров, то я задумаюсь над вашими словами.
-
А по поводу языков с возможностью компиляции в нативный код - вот: The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Adahttp://gcc.gnu.org/Это только один из компиляторов, причём открытый.
-
> Vampire Hunter D. (11.12.08 08:13) [28] > > iZEN (11.12.08 03:35) [24] > > Я думаю, вы должны знать про CDT.
Eclipse-CDT? Не поверишь оно на Java написано с элементами JNI-вызовов к нативным компонентам. :O
-
> Anatoly Podgoretsky © (11.12.08 09:37) [33] > > > iZEN (11.12.2008 3:32:23) [23] > > Стой а не ты ли это утверждал про 1.5 и теперь сливаешь? >
Что утверждал насчёт 1.5? > DVM © (11.12.08 10:30) [34] > Кстати, приведенный тобой пример в [12] уже свидетельствует > не в пользу Java.
Давай исходники — я напишу тест для Java, когда время свободное будет, протестируем. > DVM © (11.12.08 10:30) [34] > Кстати, приведенный тобой пример в [12] уже свидетельствует > не в пользу Java.
Тесты показали, что основные свойства динамически сгенерированного кода JIT находятся на том же уровне качества и быстродействия, что и нативный код, полученный после статической компиляции (правда, в Delphi плохой оптимизатор для работы со строковыми данными, а если принять во внимание то, что она работала с однобитной кодировкой Cp1251, а Java с 16-битной UCS2, то разница в скорости конкатенации юникодных строк будет ещё более ужасающей). > DVM © (11.12.08 10:40) [35] > > > > iZEN (11.12.08 03:32) [23] > > Простая вещь: > > 1) Загрузка JPEG 1600*1200 неважно откуда (сеть/файл/ит. > д.). > 2) Декодирование. > 3) Поворот на 90 градусов > 4) Уменьшение до 800*600 > 5) Вывод битмапа на поверхность окна > > 2-5 повторить 1000 раз. http://cerncourier.com/cws/article/cnl/34848подойдёт? :)
-
-
-
> Что утверждал насчёт 1.5?
Вот это
> Современные версии Java 6.0 и 6u11 (1.6.x) гораздо быстрее, > чем Java 5.0 (1.5). Даже тестировать неудобно — по ощущениям > (глаза, руки) заметно.
Я помню как ты хвалил 1.5, а теперь оказывается даже неудобно.
-
> iZEN © (11.12.08 18:09) [48]
> подойдёт? :)
Не. Я конечно понимаю, что на Java написана куча отличных программ, но хотелось бы просто провести некий синтетический тест типа Delphi vs Java. Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсь (особенно учитывая, что в ход можно пустить DirectX, Intel IPP и даже CUDA), но можно протестировать и по полной в разных областях. Мне было бы интересно, т.к. с делфи я вобщем то знаком неплохо, а вот Java только только коснулся.
-
> Anatoly Podgoretsky © (11.12.08 19:27) [51] > Я помню как ты хвалил 1.5, а теперь оказывается даже неудобно.
Не приписывайте мно того, чего я не говорил!
Уж чего-чего, а Java 5.0 я точно не хвалил. Мне не понравились новые обобщённые типы и введение класса StringBuilder наравне со старым StringBuffer, вместо того, чтобы всю оптимизацию сделать на уровне системного класса String. По-хорошему, класс String надо сделать мутабельным, обеспечить его дескриптором безопасности (чтобы можно было влиять на его мутабельность), а класс StringBuffer объявить "deprecated", и не заниматься ерундой. Поэтому долгое время (до выхода Java 6.0) занимался исключительно Java2 1.4.2.
Java 6.0 ввела такое понятие, как инлайнинг и задействование стэка процессора вместо кучи для инстанцирования короткоживущих объектов. Это в разы ускоряет производительность и экономит память. Кроме того, появились разные сборщики мусора с отличными стратегиями. Определённо, что Java 6.0 (1.6) — действительно инновационная технология, в отличие от "экспериментальной" Java 5.0 (1.5), которая делалась скорее для обкатки новых идей, чем для продакшена.
-
хотелось бы просто провести некий синтетический тест типа Delphi vs Java. Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсьВ своё время наткнулся на программу обработки изображений на Java: http://people.cs.vt.edu/~lithomas/robustestimation/imageprocess.javaФильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если вы сможете запустить Java-код (я вообще не в курсе как это делается) и засечь время - можно сравнить.
-
> Sapersky (12.12.08 16:38) [54] > Фильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если > вы сможете запустить Java-код (я вообще не в курсе как это > делается) и засечь время - можно сравнить.
Запустить что, простите? Это библиотечный код. Используется в каком-то приложении непонятно каким образом.
-
> iZEN © (12.12.08 20:19) [55]
> Запустить что, простите?
Взять этот класс и использовать его для гауссовского размытия изображения (тестовое приложение создать). Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.
> Sapersky (12.12.08 16:38) [54]
Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?
-
Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.
Там написано - gray values, т.е. 8 бит.
Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?
У меня совсем другая. По-хорошему - да, надо чтобы был идентичный... а то я заранее могу сказать, что этот медленнее моего, потому как используется float вместо byte. Ну смотрите, что проще - переводить Java-код на Delphi или наоборот. Если надо, подготовлю упрощённую версию своей функции (в текущем виде там много лишнего). Или взять что-нибудь из FastLIB, то же масштабирование картинки (Bilinear, FastResize), или какой-нибудь спецэффект.
-
-
-
-
Я одного не понимаю - чем вы тут меряетесь ?
-
> Игорь Шевченко © (13.12.08 15:44) [61] > > Я одного не понимаю - чем вы тут меряетесь ?
кто больше произведет
-
C# - оказалася быстрее делфи ... - вот сравнивал вызоф 1000000 функции StringReplace результаты: C# - ~700 ms D2006 = ~2700 - 2800 ms моя самопальня функция "StrReplace" в замен В2006 = ~2200 - 2400 ms private void button1_Click(object sender, System.EventArgs e)
int FullTime = System.Environment.TickCount-bgnTime;
textBox1.Text = dubleAppdata + " "+FullTime.ToString();
}
procedure TForm1.Button3Click(Sender: TObject);
var
BgnTime,LastTime,TestTime: Integer;
i: integer;
S, DubleAppData: String;
begin
BgnTime:=GetTickCount;
S:=GetEnvironmentVariable('AppData');
for i:=1 to 1000000 do begin
StringReplace(S,'\','\\',[rfReplaceAll]);
end;
LastTime := GetTickCount;
TestTime := LastTime-BgnTime;
Memo1.Lines.Add('End test StringReplace: time = '+IntToStr(TestTime)+ ' mc');
end;
function StrReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
var
SLen, NPLen,Index, Count : Integer;
temp, SearchStr, Patt : String;
begin
Count := 1;
Index := 1;
SLen := Length(S);
NPLen := Length(OldPattern);
if (S = '') or (OldPattern = '') then Exit;
Setlength(temp,NPLen);
if rfIgnoreCase in Flags then
begin
SearchStr := AnsiUpperCase(S);
Patt := AnsiUpperCase(OldPattern);
end else
begin
SearchStr := S;
Patt := OldPattern;
end;
While true do begin
if (Pred(Count)+NPLen) > SLen then begin
Result:=Result+Copy(SearchStr,Index,(Count+NPLen)-Index);
Break;
end;
Move(SearchStr[Count],temp[1],NPLen);
if temp = Patt then begin
Result:=Result+copy(SearchStr,Index,count-Index)+NewPattern;
inc(count,NPLen);
Index:=count;
if Not (rfReplaceAll in Flags) then begin
Result:=Result+Copy(SearchStr,Index,(Count+NPLen)-Index);
Break;
end;
continue;
end;
inc(count);
end;
end;
-
Может быть Делфа и лучше всех, но знают об этом только вы - "мастера", а остальные, например, работодатели просто посылают в Ж..пу дляних дешевле купить VS 2005 со всеми пребамбасиками чем не понятно за что блатить VC2005$ < BDS$ VC 2005 в комблекте предлагает заменшие гроши еще и Vista для тестировани и Windows server для тестирования и MSSQL сервер для тестирования и все это предачу гдето ~ за 2500$ А что предлагает Codegear за теже гроши? скромно D7? и все?
-
> Я одного не понимаю - чем вы тут меряетесь ?
ИЗЕН сейчас еще и сказки о фрибсд достанет.
-
Если вернуться к сабжу, то ответ на вопрос очевиден. Производителем Delphi является Codegear, а эта контора Delphi под Ubuntu не производит. Никакая другая фирма производить продукт под той же торговой маркой не имеет права. Следовательно Delphi под Ubuntu нет.
-
> Следовательно Delphi под Ubuntu нет.
оно и не надо. убунту тоже не надо под gnu\linux есть fpc и lazarus (хотя оно не юзабельно) если хватит денег, или, если открытый проект - QTCreator+Qt также всякие скриптовые языки и ява
-
> Узурап (13.12.08 20:33) [67]
Если ну нужно угламереного интерфейса то достаточно C++ и wxWidgets + визуальный редактор, там их несколько - выберите по вкусу.
А С++ с "магией" не хуже delphi по удобству разработки.
-
> под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)
Всегда интересовало.. что такое "юзабельно"?
-
> @!!ex © (13.12.08 22:42) [69] > > > под gnu\linux есть fpc и lazarus (хотя оно не юзабельно) > > Всегда интересовало.. что такое "юзабельно"?
За дебагер в Lazarus нужно заставлять этих программистов писать на асме ПО для бухгалтерии. Вот это неюзабельно. Кроме того проще притащить вместе с программой jdk чем тащить этого монстра.
Хотите кросплатформенности - берите java или c++.
-
> Всегда интересовало.. что такое "юзабельно"?
достаточно увидеть лазарус, чтобы понять. быстро сделать что-то простое оно пойдет, для проектов уровня выше "хелло мир" - нет.
-
> [71] Узурап (14.12.08 14:48)
Да ну... дебагер там и правда отстойный... Благо можно другие дебагеры использовать. А все остальное - вполне рабочее.
-
Я не говорил, что не рабочее. Но после eclipse и qtcreator`a оно уныло очень.
-
> Кроме того проще притащить вместе с программой jdk чем тащить > этого монстра.
ага, тащи то-то же, таскунов развелось :(
-
> - вот сравнивал вызоф 1000000 функции StringReplace > результаты: > C# - ~700 ms > D2006 = ~2700 - 2800 ms > моя самопальня функция "StrReplace" в замен В2006 = ~2200 > - 2400 ms
А вот я сравнил: стандартная StringReplace - 1890 моя реализация StringReplace - 187 Так что дело не на чем писать, а как.
-
> atruhin © (15.12.08 12:14) [75] > А вот я сравнил: > стандартная StringReplace - 1890 > моя реализация StringReplace - 187
А можно на эту функцию взглянуть?
-
> [76] Cobalt © (15.12.08 14:05)
да там небось чистый асемблер. :) так что дело не на чем писать.. а на чем писать на ассемблере. :)
-
> @!!ex (15.12.2008 14:08:17) [77]
Не мешало бы взглянуть на исходные данные и методику теста.
-
так что дело не на чем писать.. а на чем писать на ассемблереПо моему опыту, дельфийский компилятор не так плох, как о нём принято думать... хотя, если работаешь в основном с floating-point кодом, у тебя вполне может быть противоположный опыт. По StringReplace: http://www.fastcode.dk/fastcodeproject/fastcodeproject/10.htmКстати, разница между asm (Blended, 14.1) и pas (13.8) - всего 2%. В BDS2006 и далее фасткодовские функции (все или нет - не в курсе) используются в качестве стандартных.
-
-
> А можно на эту функцию взглянуть?
Функцию писал сам, но саму идею однопроходного поиска с сохранением позиций в стеке, где то подсмотрел. scPosStr, scCopyMem ассемблерные ускоренные аналоги стандартных, где то брал готовые. function scReplaceStr(const SourceString, FindString, ReplaceString: string): string; var P,PS: PChar; L,L1,L2,Cnt: Integer; I,J,K,M: Integer; begin L1 := Length(FindString); Cnt := 0; I := scPosStr(FindString,SourceString,1); while I <> 0 do begin Inc(I,L1); asm PUSH I end; Inc(Cnt); I := scPosStr(FindString,SourceString,I); end; if Cnt <> 0 then begin L := Length(SourceString); L2 := Length(ReplaceString); J := L+1; Inc(L,(L2-L1)*Cnt); if L <> 0 then begin SetString(Result,nil,L); P := Pointer(Result); Inc(P, L); PS := Pointer(LongWord(SourceString)-1); for I := 0 to Cnt-1 do begin asm POP K end; M := J-K; if M > 0 then begin Dec(P,M); scCopyMem(@PS[K],P,M); end; Dec(P,L2); scCopyMem(Pointer(ReplaceString),P,L2); J := K-L1; end; Dec(J); if J > 0 then scCopyMem(Pointer(SourceString),Pointer(Result),J); end else begin Result := ''; for i:=1 to Cnt do asm pop K end; end end else Result := SourceString; end;
-
> [79] Sapersky (15.12.08 17:08) > В BDS2006 и далее фасткодовские функции (все или нет - не > в курсе) используются в качестве стандартных.
Не знаю откуда информация, но я сравнивал в RadStudio 2007 со свеми апдейтами
-
Сейчас посмотрел 2006-й - да, похоже, StringReplace не меняли. Судя по system.pas - от фасткода взяли Move, FillChar, Pos, _lldiv (64-bit signed division), возможно, есть ещё что-то в других модулях.
|