
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.5] |
![]() |
|
Страницы: (117) « Первая ... 3 4 [5] 6 7 ... 116 117 ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Какое это имеет отношение к данной теме? Предлагаю вести обсуждение в рамках данной темы. Можем бенчмарки провести, я очень даже за. |
Сообщ.
#62
,
|
|
|
Цитата Smike @ Можем бенчмарки провести, я очень даже за. Бенчмарки чего? Предлагай. Добавлено Кстати, это предложение может иметь интересное продолжение. Подбираем бенчмарки. Проводим их. После чего выкладываем в нашу wiki и даем линк с главной страницы. В конце концов, программисты мы, али нет? ![]() |
Сообщ.
#63
,
|
|
|
Можно попробовать провести бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent. В принципе реализуемы такие связки:
Delphi + OpenGLComponent Builder + OpenGLComponent VC++ + Glut |
Сообщ.
#64
,
|
|
|
Кстати, был один "бенчмарк". Где-то в алгоритмах вроде различные реализации умножения матриц сравнивали. Были реализации на и на Делфи, и на Сях.
|
Сообщ.
#65
,
|
|
|
Цитата Мяут бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent ага.. и по лесу в танке катаемся.. вот семпл из MS-ишной справки по OpenGL, портированый (хотя точнее сказать скопипасшеный, с самыми минимальными правками) на дельфу, еще хрен знает когда. ![]() ![]() program accnot; uses opengl, glaux; var mat_ambient : array [1..4] of GLfloat = ( 1.0, 1.0, 1.0, 1.0 ); mat_specular : array [1..4] of GLfloat = ( 1.0, 1.0, 1.0, 1.0 ); light_position: array [1..4] of GLfloat = ( 0.0, 0.0, 10.0, 1.0 ); lm_ambient : array [1..4] of GLfloat = ( 0.2, 0.2, 0.2, 1.0 ); procedure myinit; begin glMaterialfv(GL_FRONT, GL_AMBIENT, @mat_ambient); glMaterialfv(GL_FRONT, GL_SPECULAR, @mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 50.0); glLightfv(GL_LIGHT0, GL_POSITION, @light_position); glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @lm_ambient); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); end; var torus_diffuse : array [1..4] of GLfloat = ( 0.7, 0.7, 0.0, 1.0 ); cube_diffuse : array [1..4] of GLfloat = ( 0.0, 0.7, 0.7, 1.0 ); sphere_diffuse: array [1..4] of GLfloat = ( 0.7, 0.0, 0.7, 1.0 ); octa_diffuse : array [1..4] of GLfloat = ( 0.7, 0.4, 0.4, 1.0 ); procedure display;stdcall; var i:integer; begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glShadeModel (GL_FLAT); glPushMatrix (); glRotatef (30.0, 1.0, 0.0, 0.0); glPushMatrix (); glTranslatef (-0.80, 0.35, 0.0); glRotatef (100.0, 1.0, 0.0, 0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, @torus_diffuse); auxSolidTorus (0.275, 0.85); glPopMatrix (); glPushMatrix (); glTranslatef (-0.75, -0.50, 0.0); glRotatef (45.0, 0.0, 0.0, 1.0); glRotatef (45.0, 1.0, 0.0, 0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, @cube_diffuse); auxSolidCube (1.5); glPopMatrix (); glPushMatrix (); glTranslatef (0.75, 0.60, 0.0); glRotatef (30.0, 1.0, 0.0, 0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, @sphere_diffuse); auxSolidSphere (1.0); glPopMatrix (); glPushMatrix (); glTranslatef (0.70, -0.90, 0.25); glMaterialfv(GL_FRONT, GL_DIFFUSE, @octa_diffuse); auxSolidOctahedron (1.0); glPopMatrix (); glPopMatrix (); glFlush(); end; procedure myReshape( w,h :GLsizei);stdcall; begin if h = 0 then h := 1; glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if w <= h then glOrtho (-2.25, 2.25, -2.25*h/w, 2.25*h/w, -10.0, 10.0) else glOrtho (-2.25*w/h, 2.25*w/h, -2.25, 2.25, -10.0, 10.0); glMatrixMode(GL_MODELVIEW); end; (* Main Loop * Open window with initial window size, title bar, * RGBA display mode, and handle input events. *) {$R DELPHI.RES} begin auxInitDisplayMode (AUX_SINGLE or AUX_RGB or AUX_ACCUM or AUX_DEPTH16); auxInitPosition (0, 0, 250, 250); auxInitWindow ('Auxillary 3-D Models'); myinit(); auxReshapeFunc (@myReshape); auxMainLoop(@display); end. И где здесь соревноваться, в сплошных вызовах в либы чтоли? Можешь поверить она одинаковая... А так, на VCL формах, помниться, OpenGL весьма и весьма лагало... Без форм же сей семпл 8кб весит. Круто... Цитата Nich Где-то в алгоритмах вроде различные реализации умножения матриц сравнивали. Были реализации на и на Делфи, и на Сях. О, да! эти SSE2 вставки на ASM'e надо было видеть.. |
Сообщ.
#66
,
|
|
|
Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке.
|
Сообщ.
#67
,
|
|
|
Цитата Stratocoder @ Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке. Не наступай на больную мозоль. ![]() ![]() |
![]() |
Сообщ.
#68
,
|
|
Цитата Stratocoder @ Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке. Например? |
Сообщ.
#69
,
|
|
|
Цитата wind @ Например? Думаю, имеются ввиду всяческие списки, деревья, очереди, стеки, ассоциативные массивы и проч. проч. проч. |
![]() |
Сообщ.
#70
,
|
|
Цитата Flex Ferrum @ Думаю, имеются ввиду всяческие списки, деревья, очереди, стеки, ассоциативные массивы и проч. проч. проч. Конечно, я вижу, что с самого начала начались сравнения стандартных и прочих библиотек, но по-моему, всё это не имеет никакого отношения к языку. Кому надо коллекций - напишет и сам, тем более что трудов-то там не так уж и много потребуется. |
Сообщ.
#71
,
|
|
|
Цитата wind @ Конечно, я вижу, что с самого начала начались сравнения стандартных и прочих библиотек, но по-моему, всё это не имеет никакого отношения к языку. Ну, это одно из направлений сравнения. Другое я тоже привел. Можно ли в дельфях создавать делегаты наподобие boost::bind, т. е. когда программист полностью контролирует - что и как должно передаваться в вызываемый делегатом метод? ЗЫ: по личным ощущениям, после boost::bind все системы с жесткой привязкой делегатов к сигнатурам методов (__closure-методы в билдере, делегаты в шарпе, делегаты в делфях, технология сигналов/слотов в Qt) кажутся очень ограниченными в возможностях. |
Сообщ.
#72
,
|
|
|
Цитата wind @ Кому надо коллекций - напишет и сам, тем более что трудов-то там не так уж и много потребуется. А в дельфи можно написать коллекцию, сравнимую с C++'ным map? или vector? Вот простые примеры использования: ![]() ![]() vector<int> v1 = vector<int>(istream_iterator<int>(input_file),istream_iterator<int>());//тут в одну строчку мы считали содержимое файла в вектор sort(v1.begin(),v1.end()); //тут отсортировали, опять же в одну строчку copy(v1.begin(),v1.end(),ostream_iterator<int>(output_file,"\n"));//тут вывели — опять в одну строчку Спрашивается, можно ли в дельфи сделать что-нибудь похожее, что можно использовать столь же легко? Ответ: нет, из-за ограниченности языка. Цитата wind @ трудов-то там не так уж и много потребуется. ![]() |
Сообщ.
#73
,
|
|
|
Цитата Flex Ferrum @ Бенчмарки чего? Предлагай. Вот как мы невнимательно меня читаем ![]() Delphi vs C++ (сообщение #1514811) Цитата Кстати, может устроим бенчмаркинг пресловутых string/wstring и AnsiString/WideString? ![]() Цитата Мяут @ Можно попробовать провести бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent. Тут практически нет смысла, так как это будет сильно зависеть от видеокарты, её разгона, а от языка совсем мало. Кстати, Мяут наверно не знает, что в Delphi RTL есть OpenGL API. Цитата Flex Ferrum @ Generic-коллекции различного рода в дельфях, я думаю, не появятся никогда. ![]() Не понял, а это тогда что? http://www.zeitungsjunge.de/delphi/containers/ Цитата Flex Ferrum @ Ну, это одно из направлений сравнения. Другое я тоже привел. Можно ли в дельфях создавать делегаты наподобие boost::bind, т. е. когда программист полностью контролирует - что и как должно передаваться в вызываемый делегатом метод? А может дистанцируемся от абстракций и придумаем реальную задачу, где это все может использоваться? Только задача не Цитата mo3r @ написать коллекцию, сравнимую с C++'ным map? или vector? А реальная задача, не языком программистских абстракций? Вот тогда и посмотрим, каким образом это можно решить в Delphi. Ведь задачи решаются не языком, а программистом, использующим его. |
Сообщ.
#74
,
|
|
|
Цитата Smike @ Вот как мы невнимательно меня читаем ![]() И по каким характеристикам будем сравнивать? Цитата Smike @ Не понял, а это тогда что? http://www.zeitungsjunge.de/delphi/containers/ Смайк, ты знаешь что такое "Generic-контейнеры"? ![]() Цитата Smike @ А может дистанцируемся от абстракций Да какие уж тут абстракции? Задачка буквально вот двухдневной давности. |
Сообщ.
#75
,
|
|
|
Цитата Smike @ А реальная задача, не языком программистских абстракций? Вот тогда и посмотрим, каким образом это можно решить в Delphi. Ведь задачи решаются не языком, а программистом, использующим его. Хорошо предлагаю реальную, достаточно часто встречающуюся задачу имеется транспортная сеть, состоит из узлов, узлы делятся на источники и потребители источник маркируем числом -1 а потребитель положительным целым означающим потребность также узлы соединяются между собой путями, каждый путь маркируется сложностью (положительным целым числом) задача: существует понятие транспортного средства с параметром грузоподъемность небходимо реализовать а) быстро и интерактивное построение графа системы (число узлов 5-20000, число ветвей считайте сами ![]() б) расчет оптимальных путей транспортных средств(их может быть сколь угодно много) по дейкстре для обеспечения всех потребителей требования: производительность создания графа и его расчета ось винда, тип графического интерфейса произвольный(можно даже консоль) критерии оценки: 1. производительность 2. удобство написания кода 3. понятность кода ну как вам ? Добавлено различные разновидности этой задачи приходится решать в большинстве областей науки , промышленности, энергетики и экономики еще одно требование, возможность наиболее безболлезненной корректировки кода под небольшие изменения поставленной задачи |