Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Вниз

DELPHi На ubuntu   Найти похожие ветки 

 
Noone   (2008-12-10 20:47) [0]

Есть такой ?где скачать?


 
YurikGL ©   (2008-12-10 21:14) [1]

Wine ?


 
Игорь Шевченко ©   (2008-12-10 21:16) [2]

Lazarus ?


 
KilkennyCat ©   (2008-12-10 21:23) [3]

Удалено модератором


 
boa_kaa ©   (2008-12-10 21:34) [4]


> YurikGL ©   (10.12.08 21:14) [1]
> Wine ?

7ка еще пойдет
а вот более поздние заточены на дотнет с сдк
а вот енто фик


 
Vampire Hunter D.   (2008-12-10 21:40) [5]

Если ты хочешь создавать качественные кросплатформенные приложения, у тебя есть такой выбор: С++, если приложение должно активно использовать возможности системы (для С++ можно найти много библиотек абстракции от этой самой системы) и Java в противном случае.
Поэтому, я ненавязчиво агитирую тебя забыть об этом страшном рассаднике глюков, в котором потомки TObject не могут наследовать интерфейсы, нельзя делать миксины, и вообще сколько-нибудь вменяемо объектно проектировать, и переходить на C++/Java.


 
DVM ©   (2008-12-10 21:50) [6]


> Vampire Hunter D.   (10.12.08 21:40) [5]

Правильно, давно пора переходить на рассадник глюков C++ и тормоз Java!


 
iZeqfreed   (2008-12-10 22:38) [7]

С + glib наш выбор :)


 
Городской Шаман   (2008-12-10 22:50) [8]

Удалено модератором


 
Городской Шаман   (2008-12-10 22:55) [9]


> DVM ©   (10.12.08 21:50) [6]
>
> > Vampire Hunter D.   (10.12.08 21:40) [5]
>
> Правильно, давно пора переходить на рассадник глюков C++


В С++ нужно библиотеки самому подбирать, а не кушать то что дают. Delphi нормально работает только с Win32 да и то криво, если копнуть поглубже. Позорище, Unicode только нормально (коробки) заработал только с D2009, позорище.

Уж лучше Python чем Delphi. По поводу оконной библиотеки - wxPython.


 
DVM ©   (2008-12-10 23:16) [10]


> В С++ нужно библиотеки самому подбирать, а не кушать то
> что дают.

Да я что спорю. Но это и в Delphi возможно вообще то.


> Delphi нормально работает только с Win32 да и то криво,
> если копнуть поглубже

Насчет глубже хотелось бы поподробнее.


> Позорище, Unicode только нормально (коробки) заработал только
> с D2009, позорище.

Это да, но все же заработал.

Под линукс Си однозначно. Он для UNIX родной.


 
iZEN   (2008-12-10 23:18) [11]


> DVM ©   (10.12.08 21:50) [6]
> Правильно, давно пора переходить на рассадник глюков C++
> и тормоз Java!


Java не тормозит. Доказано Tommy.


 
iZEN   (2008-12-10 23:21) [12]

DVM

Прежде чем делать далеко идущие выводы из запущенного в конце 90-х годов апплета, попробуйте испытать у себя вот это "скриптовое" решение:
http://izen.dev.juga.ru/image/FreeBSD-JavaFX-StopWatch.png


 
DVM ©   (2008-12-10 23:22) [13]


> Java не тормозит.

Угу. Он просто работает несколько неспеша.


 
DVM ©   (2008-12-10 23:25) [14]


> iZEN   (10.12.08 23:21) [12]


> Прежде чем делать далеко идущие выводы из запущенного в
> конце 90-х годов апплета

Да я выводы делаю исключительно из своего (в java пока очень небогатого опыта 2 месяца :) Может я и не прав. Но пока все что мне удалось написать самому и все из написанного другими в плане скорости работы меня к сожалению не впечатлило. Ну уступает он в скорости нативным win32 приложениям на том же Delphi.


 
DVM ©   (2008-12-10 23:27) [15]


> iZEN   (10.12.08 23:21) [12]

Ээээ.. а что с этим делать то? Это ж картинка?


 
DVM ©   (2008-12-10 23:32) [16]


> iZEN

И все же, я никогда не соглашусь с тем, что код java выполняемый на виртуальной машине java будет столь же быстр, что и обычный компилируемый код. Да он будет работать быстро на современной машине, да не будет заметных тормозов, но отставание от нативного кода будет и значительное процентов 30-50. Это существенно для многих задач.


 
Плохиш ©   (2008-12-10 23:42) [17]


> Городской Шаман   (10.12.08 22:55) [9]



> В С++ нужно библиотеки самому подбирать, а не кушать то
> что дают. Delphi нормально работает только с Win32 да и
> то криво, если копнуть поглубже. Позорище, Unicode только
> нормально (коробки) заработал только с D2009, позорище.
>

T.e. в c++ вы подбираете библиотеки, а в delphi "кушаете то, что дают". И на основании этого делаете выводы, ну-ну.
Между прочим, Delphi поддерживает юникод ещё, вроде, со второй версии. А vcl, это как раз "то, что дают"


 
DVM ©   (2008-12-10 23:48) [18]


> iZEN   (10.12.08 23:21) [12]


> http://izen.dev.juga.ru/image/FreeBSD-JavaFX-StopWatch.png

Посмотрел. Что могу сказать, красиво. И не тормозит. Но еще могу сказать, что в момент выполнения сего чуда загрузка системы процессом java был от 20 до 50 процентов. Да я такое же напишу на Delphi, что оно будет грузить систему на 0-5 % О DX молчу. Или я чего то не понял в этой демонстрашке?


 
Городской Шаман   (2008-12-11 00:14) [19]


> 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++ не языковым выпендрёжом, а результатом работы, то это вполне нормальный язык, без всяких страшилок.


 
Городской Шаман   (2008-12-11 00:18) [20]


> Городской Шаман   (11.12.08 00:14) [19]
>
>
> > DVM ©   (10.12.08 23:16) [10]
> >
> >
> > > В С++ нужно библиотеки самому подбирать, а не кушать
> то
> > > что дают.
> >
> > Да я что спорю. Но это и в Delphi возможно вообще то.
>
> Да? А можно ссылочку на другой, отличный от VCL, GUI-фреймворк
> для Delphi? А для С++ их около 200, правда нормальных около
> 10.


Да, еще CLX е пойдёт, так как от него Линуксоиды ржут, пальцем у виска крутят и считают всех Delphi-стов ламерами, так оно работает.


 
DVM ©   (2008-12-11 00:43) [21]


> А можно ссылочку на другой, отличный от VCL, GUI-фреймворк
> для Delphi?

KOL? :) Конечно их почти нет, но это не значит, что они исключены. В конце концов свой написать можно.


> Только не C, а C++

Изначально родным был СИ. И куча софта написано безо всяких плюсов. И сейчас есть куча софта без плюсов. Плюсы потом появились. Собственно я ничего против них не имею.


 
Городской Шаман   (2008-12-11 01:54) [22]


> 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.


 
iZEN   (2008-12-11 03:32) [23]


> 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). Даже тестировать неудобно — по ощущениям (глаза, руки) заметно.


 
iZEN   (2008-12-11 03:35) [24]


> Городской Шаман   (11.12.08 00:14) [19]
> Если увлекаться на C++ не языковым выпендрёжом,
> а результатом работы, то это вполне нормальный язык, без
> всяких страшилок.


Чего ж на C++ до сих пор IDE уровня Eclipse не написали? ;)


 
boa_kaa ©   (2008-12-11 03:52) [25]


> iZEN   (11.12.08 03:35) [24]

подсказать несколько или сам догадаешься?


 
iZEN   (2008-12-11 07:04) [26]


> boa_kaa ©   (11.12.08 03:52) [25]
> > iZEN   (11.12.08 03:35) [24]
>
> подсказать несколько или сам догадаешься?

Валяй.


 
iZEN   (2008-12-11 07:05) [27]


> boa_kaa ©   (11.12.08 03:52) [25]
> > iZEN   (11.12.08 03:35) [24]
>
> подсказать несколько или сам догадаешься?

Валяй.


 
Vampire Hunter D.   (2008-12-11 08:13) [28]

iZEN   (11.12.08 03:35) [24]

Я думаю, вы должны знать про CDT.


 
Anatoly Podgoretsky ©   (2008-12-11 09:29) [29]

> Городской Шаман  (10.12.2008 22:50:08)  [8]

Попробуй другую поисковую систему, Гугл попсовый


 
Anatoly Podgoretsky ©   (2008-12-11 09:32) [30]

> DVM  (10.12.2008 23:32:16)  [16]

Вообще то зря не веришь, я тебе обеспечу гигантское торможение на Ассемблере.


 
Anatoly Podgoretsky ©   (2008-12-11 09:35) [31]

> Городской Шаман  (11.12.2008 0:18:20)  [20]

Да им завидно, поэтому они ржут над всеми, считая всех идиотами, кроме себя.


 
Anatoly Podgoretsky ©   (2008-12-11 09:36) [32]

> DVM  (11.12.2008 0:43:21)  [21]

А я имею, поскольку два плюса.


 
Anatoly Podgoretsky ©   (2008-12-11 09:37) [33]

> iZEN  (11.12.2008 3:32:23)  [23]

Стой а не ты ли это утверждал про 1.5 и теперь сливаешь?


 
DVM ©   (2008-12-11 10:30) [34]


> 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.


 
DVM ©   (2008-12-11 10:40) [35]


> iZEN   (11.12.08 03:32) [23]

Простая вещь:

1) Загрузка JPEG 1600*1200 неважно откуда (сеть/файл/ит.д.).
2) Декодирование.
3) Поворот на 90 градусов
4) Уменьшение до 800*600
5) Вывод битмапа на поверхность окна

2-5 повторить 1000 раз.


 
Anatoly Podgoretsky ©   (2008-12-11 12:10) [36]

> DVM  (11.12.2008 10:30:34)  [34]

Ага, там не только секундомер не работает, но и скролл бары тоже.


 
Правильный$Вася   (2008-12-11 12:26) [37]

а у меня знакомый мужик на фортране написал алгоритм, который потом перевел на дельфи
и откомпилировал оба современными компиляторами
и фортрановский работает на порядок быстрее
там чистая математика + консольный/файловый ввод/вывод

и что? это никоим образом не говорит, что что-то из них лучше или хуже
это говорит о том, что для каждой задачи нужны СВОИ ИНСТРУМЕНТЫ, а нете, которые оказались под рукой


 
Городской Шаман   (2008-12-11 12:38) [38]


> 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, где можно быстро в одиночку нашкрябать еще один учётный проект для малого бизнеса.


 
pasha_golub ©   (2008-12-11 13:31) [39]


> Вывод - Delphi современный FoxPro, где можно быстро в одиночку
> нашкрябать еще один учётный проект для малого бизнеса.

И когда ж сдохнет оно (она, он) это Делфя.


 
Anatoly Podgoretsky ©   (2008-12-11 13:54) [40]

> pasha_golub  (11.12.2008 13:31:39)  [39]

И появится Эльфа


 
Городской Шаман   (2008-12-11 14:17) [41]


> pasha_golub ©   (11.12.08 13:31) [39]
>
>
> > Вывод - Delphi современный FoxPro, где можно быстро в
> одиночку
> > нашкрябать еще один учётный проект для малого бизнеса.
>
>
> И когда ж сдохнет оно (она, он) это Делфя.


Тогда когда и Cobol...


 
Кто б сомневался ©   (2008-12-11 15:29) [42]


> И когда ж сдохнет оно (она, он) это Делфя.


На данный момент существует 2 известных нативных языка С++ и Delphi.
С++ уже потихоньку отмирает, поэтому давайте лучше разрешим Delphi  жить, все таки это хороший конкурент.


 
pasha_golub ©   (2008-12-11 15:44) [43]

Я думал все поймут, что я издеваюсь. Ан нет.

PS Java sucks!


 
tesseract ©   (2008-12-11 15:45) [44]


> На данный момент существует 2 известных нативных языка С++
> и Delphi.


А C / Objective-C, Python (он тоже компилируеться). Уже не известные языки ? С++ умирает с момента выхода в свет, пока попка  живой.


 
Городской Шаман   (2008-12-11 15:55) [45]


> Кто б сомневался ©   (11.12.08 15:29) [42]
>
>
> > И когда ж сдохнет оно (она, он) это Делфя.
>
>
> На данный момент существует 2 известных нативных языка С++
> и Delphi.
> С++ уже потихоньку отмирает, поэтому давайте лучше разрешим
> Delphi  жить, все таки это хороший конкурент.


Вот когда Embacerdo выпустит Delphi для микроконтроллеров, то я задумаюсь над вашими словами.


 
Городской Шаман   (2008-12-11 15:59) [46]

А по поводу языков с возможностью компиляции в нативный код - вот:
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada
http://gcc.gnu.org/

Это только один из компиляторов, причём открытый.


 
iZEN ©   (2008-12-11 17:58) [47]


> Vampire Hunter D.   (11.12.08 08:13) [28]
>
> iZEN   (11.12.08 03:35) [24]
>
> Я думаю, вы должны знать про CDT.


Eclipse-CDT? Не поверишь оно на Java написано с элементами JNI-вызовов к нативным компонентам. :O


 
iZEN ©   (2008-12-11 18:09) [48]


> 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
подойдёт? :)


 
iZEN ©   (2008-12-11 18:14) [49]

http://java.sun.com/javaone/sf/2008/articles/gosling_toystory.jsp


 
Городской Шаман   (2008-12-11 18:46) [50]


> iZEN ©   (11.12.08 18:14) [49]
>
> http://java.sun.com/javaone/sf/2008/articles/gosling_toystory.jsp


А слабо Сталкер на Java?


 
Anatoly Podgoretsky ©   (2008-12-11 19:27) [51]


> Что утверждал насчёт 1.5?

Вот это

> Современные версии Java 6.0 и 6u11 (1.6.x) гораздо быстрее,
>  чем Java 5.0 (1.5). Даже тестировать неудобно — по ощущениям
> (глаза, руки) заметно.

Я помню как ты хвалил 1.5, а теперь оказывается даже неудобно.


 
DVM ©   (2008-12-11 21:39) [52]


> iZEN ©   (11.12.08 18:09) [48]


> подойдёт? :)

Не. Я конечно понимаю, что на Java написана куча отличных программ, но хотелось бы просто провести некий синтетический тест типа Delphi vs Java.
Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсь (особенно учитывая, что в ход можно пустить DirectX, Intel IPP и даже CUDA), но можно протестировать и по полной в разных областях. Мне было бы интересно, т.к. с делфи я вобщем то знаком неплохо, а вот Java только только коснулся.


 
iZEN ©   (2008-12-11 23:05) [53]


> 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), которая делалась скорее для обкатки новых идей, чем для продакшена.


 
Sapersky   (2008-12-12 16:38) [54]

хотелось бы просто провести некий синтетический тест типа Delphi vs Java.
Я предложил сравнить графику, т.к. в преимуществе нативного языка в этой области я не сомневаюсь


В своё время наткнулся на программу обработки изображений на Java:

http://people.cs.vt.edu/~lithomas/robustestimation/imageprocess.java

Фильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если вы сможете запустить Java-код (я вообще не в курсе как это делается) и засечь время - можно сравнить.


 
iZEN ©   (2008-12-12 20:19) [55]


> Sapersky   (12.12.08 16:38) [54]
> Фильтр Гаусса (GaussianSmooth) на Дельфи у меня есть. Если
> вы сможете запустить Java-код (я вообще не в курсе как это
> делается) и засечь время - можно сравнить.

Запустить что, простите? Это библиотечный код. Используется в каком-то приложении непонятно каким образом.


 
DVM ©   (2008-12-12 21:01) [56]


> iZEN ©   (12.12.08 20:19) [55]


> Запустить что, простите?

Взять этот класс и использовать его для гауссовского размытия изображения (тестовое приложение создать). Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.


> Sapersky   (12.12.08 16:38) [54]

Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?


 
Sapersky   (2008-12-12 21:28) [57]

Правда не совсем понятно, что передавать в float [][] inImage, массив бит, но что за массив, какова цветность изображения и т.д.

Там написано - gray values, т.е. 8 бит.

Но чтобы сравнить, надо иметь идентичный код (тот же алгоритм так же реализованный) но на Delphi. Он у вас есть? Т.е. он портирован из Java кода или другая реализация?

У меня совсем другая.
По-хорошему - да, надо чтобы был идентичный... а то я заранее могу сказать, что этот медленнее моего, потому как используется float вместо byte.
Ну смотрите, что проще - переводить Java-код на Delphi или наоборот. Если надо, подготовлю упрощённую версию своей функции (в текущем виде там много лишнего). Или взять что-нибудь из FastLIB, то же масштабирование картинки (Bilinear, FastResize), или какой-нибудь спецэффект.


 
iZEN   (2008-12-13 12:08) [58]

http://www.stefankrause.net/wp/?p=9


 
iZEN   (2008-12-13 12:14) [59]

Интересный момент:
http://balancer.ru/tech/forum/2008/02/t60021--CHto,gospoda-surovye-S-plus-plus-program.html


 
iZEN   (2008-12-13 15:34) [60]

Вот ещё удивительный ресурс:
http://processing.org/


 
Игорь Шевченко ©   (2008-12-13 15:44) [61]

Я одного не понимаю - чем вы тут меряетесь ?


 
boa_kaa ©   (2008-12-13 19:14) [62]


> Игорь Шевченко ©   (13.12.08 15:44) [61]
>
> Я одного не понимаю - чем вы тут меряетесь ?

кто больше произведет


 
koha!   (2008-12-13 19:47) [63]

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 bgnTime = System.Environment.TickCount;
 string Appdata = System.Environment.GetEnvironmentVariable("Appdata");
 string dubleAppdata = "";
 for (int i = 0; i < 1000000; i++)
 {
   dubleAppdata = Appdata.Replace("\\","\\\\");
 }
 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;
 //if TestTime > 1000 then TestTime := TestTime div 1000;
 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;


 
koha!   (2008-12-13 20:04) [64]

Может быть Делфа и лучше всех, но знают об этом только вы - "мастера", а остальные, например, работодатели просто посылают в Ж..пу дляних дешевле купить VS 2005 со всеми пребамбасиками чем не понятно за что блатить VC2005$ < BDS$
VC 2005 в комблекте предлагает заменшие гроши еще и Vista для тестировани и Windows server для тестирования и MSSQL сервер для тестирования и все это предачу гдето ~ за 2500$ А что предлагает Codegear за теже гроши? скромно D7? и все?


 
Узурап   (2008-12-13 20:14) [65]


> Я одного не понимаю - чем вы тут меряетесь ?


ИЗЕН сейчас еще и сказки о фрибсд достанет.


 
palva ©   (2008-12-13 20:26) [66]

Если вернуться к сабжу, то ответ на вопрос очевиден. Производителем Delphi является Codegear, а эта контора Delphi под Ubuntu не производит. Никакая другая фирма производить продукт под той же торговой маркой не имеет права. Следовательно Delphi под Ubuntu нет.


 
Узурап   (2008-12-13 20:33) [67]


> Следовательно Delphi под Ubuntu нет.


оно и не надо. убунту тоже не надо
под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)
если хватит денег, или, если открытый проект - QTCreator+Qt
также всякие скриптовые языки и ява


 
Городской Шаман   (2008-12-13 21:25) [68]


> Узурап   (13.12.08 20:33) [67]


Если ну нужно угламереного интерфейса то достаточно C++ и wxWidgets + визуальный редактор, там их несколько - выберите по вкусу.

А С++ с "магией" не хуже delphi по удобству разработки.


 
@!!ex ©   (2008-12-13 22:42) [69]

> под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)

Всегда интересовало.. что такое "юзабельно"?


 
Городской Шаман   (2008-12-13 22:46) [70]


> @!!ex ©   (13.12.08 22:42) [69]
>
> > под gnu\linux есть fpc и lazarus (хотя оно не юзабельно)
>
> Всегда интересовало.. что такое "юзабельно"?


За дебагер в Lazarus нужно заставлять этих программистов писать на асме ПО для бухгалтерии. Вот это неюзабельно. Кроме того проще притащить вместе с программой jdk чем тащить этого монстра.

Хотите кросплатформенности - берите java или c++.


 
Узурап   (2008-12-14 14:48) [71]


> Всегда интересовало.. что такое "юзабельно"?

достаточно увидеть лазарус, чтобы понять.
быстро сделать что-то простое оно пойдет, для проектов уровня выше "хелло мир" - нет.


 
@!!ex ©   (2008-12-14 16:02) [72]

> [71] Узурап   (14.12.08 14:48)

Да ну...
дебагер там и правда отстойный... Благо можно другие дебагеры использовать.
А все остальное - вполне рабочее.


 
Узурап   (2008-12-14 20:02) [73]

Я не говорил, что не рабочее.
Но после eclipse и qtcreator`a оно уныло очень.


 
wicked ©   (2008-12-15 00:45) [74]


> Кроме того проще притащить вместе с программой jdk чем тащить
> этого монстра.

ага, тащи
то-то же, таскунов развелось :(


 
atruhin ©   (2008-12-15 12:14) [75]


> - вот сравнивал вызоф 1000000 функции StringReplace
> результаты:
> C# - ~700 ms
> D2006 = ~2700 - 2800 ms
> моя самопальня функция "StrReplace" в замен В2006 = ~2200
> - 2400 ms  

А вот я сравнил:
стандартная StringReplace - 1890
моя реализация StringReplace - 187
Так что дело не на чем писать, а как.


 
Cobalt ©   (2008-12-15 14:05) [76]


> atruhin ©   (15.12.08 12:14) [75]
> А вот я сравнил:
> стандартная StringReplace - 1890
> моя реализация StringReplace - 187


А можно на эту функцию взглянуть?


 
@!!ex ©   (2008-12-15 14:08) [77]

> [76] Cobalt ©   (15.12.08 14:05)

да там небось чистый асемблер. :)
так что дело не на чем писать.. а на чем писать на ассемблере. :)


 
Anatoly Podgoretsky ©   (2008-12-15 16:59) [78]

> @!!ex  (15.12.2008 14:08:17)  [77]

Не мешало бы взглянуть на исходные данные и методику теста.


 
Sapersky   (2008-12-15 17:08) [79]

так что дело не на чем писать.. а на чем писать на ассемблере

По моему опыту, дельфийский компилятор не так плох, как о нём принято думать... хотя, если работаешь в основном с floating-point кодом, у тебя вполне может быть противоположный опыт.

По StringReplace:
http://www.fastcode.dk/fastcodeproject/fastcodeproject/10.htm
Кстати, разница между asm (Blended, 14.1) и pas (13.8) - всего 2%.

В BDS2006 и далее фасткодовские функции (все или нет - не в курсе) используются в качестве стандартных.


 
Sha ©   (2008-12-15 17:16) [80]

> Cobalt ©   (15.12.08 14:05) [76]

http://new.fastcodeproject.org/fastcode-challenges/challenges/37-challenges/45-ansi-stringreplace.html

разница 9-15 раз в зависимости от процессора


 
atruhin ©   (2008-12-15 17:22) [81]

> А можно на эту функцию взглянуть?

Функцию писал сам, но саму идею однопроходного поиска с сохранением позиций в стеке, где то подсмотрел.
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;


 
atruhin ©   (2008-12-15 17:24) [82]

> [79] Sapersky   (15.12.08 17:08)
> В BDS2006 и далее фасткодовские функции (все или нет - не
> в курсе) используются в качестве стандартных.

Не знаю откуда информация, но я сравнивал в RadStudio 2007 со свеми апдейтами


 
Sapersky   (2008-12-15 17:48) [83]

Сейчас посмотрел 2006-й - да, похоже, StringReplace не меняли.
Судя по system.pas - от фасткода взяли Move, FillChar, Pos, _lldiv (64-bit signed division), возможно, есть ещё что-то в других модулях.



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2009.02.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.69 MB
Время: 0.007 c
3-1214563377
samalex
2008-06-27 14:42
2009.02.08
"alter trigger" внутри тела процедуры


2-1230040637
Pavel
2008-12-23 16:57
2009.02.08
Подключение к базе данных


15-1229203553
Riply
2008-12-14 00:25
2009.02.08
Хочу сказать спасибо :)


2-1230552062
Golden
2008-12-29 15:01
2009.02.08
Получить номер билда моего приложения


15-1229322138
KSergey
2008-12-15 09:22
2009.02.08
Проблемы с доступом в сеть Интернет (дома)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский