Страница: 1 | 2 | 3 |
Вопрос: Знакомься: Justbasic
Добавлено: 06.03.08 23:27
Автор вопроса: rulevigor | Web-сайт:
Ответы
Всего ответов: 31
Номер ответа: 16
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #16
Добавлено: 09.03.08 16:04
rulevigor, я не понимаю твой исходник, и поэтому не уверен что тобою найдены все 66948 варианта расклада.
По теме - можешь сливать, твой код, который ИНТЕРПРЕТИРУЕТСЯ, насколько бы оптимально он не был написан, не сможет обогнать компилируемый VC++. Можешь даже не пытаться.
Номер ответа: 17
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #17
Добавлено: 09.03.08 20:25
Интерпретаторы уже 20 лет как снабжены компиляторами, втч все бейсики.
Номер ответа: 18
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #18
Добавлено: 09.03.08 20:29
Ладно что тут обсуждать, пиши код который будет выводить только нужное число и сравним скорость.
Я могу провести сравнение, если предоставишь код на VB 8.0/9.0
Номер ответа: 19
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #19
Добавлено: 09.03.08 23:34
И чего здесь можно сравнивать быстродействие? Скорости ввода-вывода? Напиши исходник для расчета только количества вариантов и отошли его Бранду.
Буду очень рад, если ты подкинешь мне ссылку на компилятор Ruby, по твоим словам, существующий уже 20 лет. Виртуальные машины и сшивание интерпретатора с кодом в EXE не считаются.
Номер ответа: 20
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #20
Добавлено: 10.03.08 10:17
1. Вот короткий текст идет на Qb40-Basic (скачать можно на http://www.qbasic.com/) :
DECLARE SUB NullSumma (i
DECLARE SUB Analiz (i
DECLARE SUB Vybor (i
DECLARE SUB Dobavka (i%, t
DIM SHARED A%(7, 1)
COMMON SHARED Sum%
CLS
DATA 1,2,3,5,10,15,20,50
FOR k = 0 TO 7 : READ A%(k, 0): NEXT
WHILE f% = 0
IF A%(0, 1) = 100 THEN f% = 1
CALL Analiz(i
CALL NullSumma(i
FOR k = 1 TO 100
A%(i%, 1) = k
CALL Dobavka(i%, t
IF t% = 1 THEN j = j + 1
IF t% > 0 THEN k = 100
NEXT
IF A%(0, 1) = 100 THEN f% = 1
WEND
PRINT "In total it is found variants: . . . . . . . . "; j
stop
END
SUB Analiz (i
A%(0, 1) = 0: i% = 7
FOR k = 0 TO 7
IF A%(k, 1) > 0 THEN A%(k, 1) = A%(k, 1) - 1: i% = k - 1: k = 7
NEXT
END SUB
SUB Dobavka (i%, t
t% = 0: Sum% = Sum% + A%(i%, 0)
IF Sum% > 100 THEN Sum% = Sum% - A%(i%, 0): t% = 2
IF Sum% = 100 THEN t% = 1
END SUB
SUB NullSumma (i
Sum% = 0
FOR k = 0 TO 7
Sum% = Sum% + A%(k, 1) * A%(k, 0)
NEXT
END SUB
2. Скоппилированный exe-файл весит 23.5 Кb
Так что это нормально скомпилированный код, а не «Виртуальные машины и сшивание интерпретатора с кодом в EXE не считаются.»
3. Насчет «20 лет» я погорячился.
4. "Sharp Номер ответа: 14"
Хотелось бы все-таки знать, решена ли задача в том тексте.
Номер ответа: 21
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #21
Добавлено: 10.03.08 10:49
exe-файл на Ваш E-mail отправил.
Номер ответа: 22
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #22
Добавлено: 10.03.08 15:09
Забенчмаркили. Тестовые платформы:
Sharp - Visual C++ 2005, release, static linking; FreeBasic 0.18.3; Celeron M 1.73; Windows XP SP2
Brand - Visual C++ 2008, release, static linking; FreeBasic 0.18.3; Core 2 Duo E6750 2.7GHz; Windows Server 2008 x64
FreeBasic это самый быстрый из известных компиляторов Basic, в частности, его оптимизатор настолько суров, что без существенного изменения кода не удалось даже заставить оптимизатор не выкидывать "пустые" итерации цикла. VC++ 2008 генерирует код на несколько процентов медленнее, чем VC++ 2005.
C++ 0.033 0.023
Basic 22 14
Разница в быстродействии в 600 раз в мою пользу.
Резюме исследования: слив защитан.
Номер ответа: 23
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #23
Добавлено: 10.03.08 15:09
Указано время одной итерации в миллисекундах
Номер ответа: 24
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #24
Добавлено: 10.03.08 17:52
Я решил оговоренную задачу, выдал исходник и переслал Вам исполняемый exe- модуль.
Вы не решили задачи, нет исходного текста и нет исполняемого модуля. Сравнение быстродействия прохождения таких модулей показало бы качество алгоритма и качество компиляции.
Вместо этого Вы мне приводите результаты абстрактных тестов C++ и FreeBasic и провозглашаете победу. Не пойму логики, извините.
Номер ответа: 25
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #25
Добавлено: 10.03.08 18:42
1) Я лично никаких исполняемых модулей не получал
2) Sharp, насколько я понял, получил от тебя письмо, но вложенный exe-файл был заблокирован почтовым сервером
3) Я уже говорил и могу повториться - exe-файл никто запускать не будет как минимум потому что помимо кода, считающего монеты, там может содержаться код, ворующий пароли от кошельков, форматирующий диски и т.п.
При проведении тестов использовался лично твой исходник, который ты предоставил в сообщении #20 и исходник который Sharp предоставил в сообщении #14. Каке компиляторы использовались при сборке указано, на каких компьютерах и в каких ОС запускался код тоже указано, то есть ты можешь полностью воспроизвести эксперимент на совем компьютере, если, конечно, тебя интерисует истина.
Предложенный тобою компилятор QB 4.0 на предложенном тобою сайте я не нашел поэтому скачал QB 4.5.
Во-первых, он не запускается в Windows 2008 x64, во-вторых, программа которую он собирает, тоже не запускается в Windows 2008 x64, я запускал их под DOS BOX и результаты очень плачевны - порядка 6 секунд на один проход, поэтмоу и пришлось использовать альтернативный компилятор Free Basic, который создает exe-файл, запускающийся под современной ОС.
Для меня это выглядит как минимум странно, что ты решил использовать для соревнования настолько древний компилятор QB.
Задаче РЕШЕНА (или докажи что ее решение неверно), исходный код ПРЕДОСТАВЛЕН, исполняемый модуль ты можешь получить без проблем, какое ПО для этого использовать - указано.
Исполняемый модуль не вижу смысла отдельно предоставлять хотя бы потому что программу следует оптимизировать под процессор на котором она будет выполняться, и это можно сделать только на целевой машине.
Сравнение быстродействия двух программ было проведено, и показало подавляющее преимущество варианта, написанного на VC++.
О какой логике может идти речь?
Ты решил провести соревнования, используя инструмент двадцатилетней давности, против инструмента который постоянно обновляется и совершенствуется (к слову последняя версия VC++ вышла буквально месяц назад)
Для меня результат тестов был известен еще до того как ты кинул сюда свой кусок кода.
Ты же, вместо того чтоб признать свое поражение, начинаешь сливать какие-то бредовые левые отмазки.
Номер ответа: 26
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #26
Добавлено: 10.03.08 18:51
Я ни в коем случае не гноблю BASIC, я сам на нем написал уже наверное больше нескольких сотен тысяч строк кода.
Но я не понимаю - зачем использовать древние реализации???
После QB был VB 3.0, VB 4.0, VB 5.0, VB 6.0, VB 2002, VB 2005, VB 2008 (который я сейчас и использую 0 фантастическая штука) - и это только реализации от Microsoft, не считая альтернативные реализации типа того же FreeBasic и Power Basic.
Номер ответа: 27
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #27
Добавлено: 10.03.08 19:31
сообщении #14 не решает задачи, в этом убедился мой друг.
Номер ответа: 28
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #28
Добавлено: 10.03.08 19:42
Unix не охватывает и 1% возможностей Singularity. В это убедился мой друг.
Не думаю что здесь мнение твоего друга является авторитетным поэтому хотелось бы увидеть более реальную аргументацию.
Номер ответа: 29
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #29
Добавлено: 10.03.08 19:46
Если ты потрудишься собрать и запустить предложенный код, то убедишься что он выводит в консоль 66498, ровно столько же сколько и твой код, и такой же ответ указан у тебя на сайте, поэтому не нужно обманывать людей.
Номер ответа: 30
Автор ответа:
rulevigor
Вопросов: 1
Ответов: 11
Web-сайт:
Профиль | | #30
Добавлено: 10.03.08 20:55
сливаюсь.