Если вы настаиваете на дальнейшем обсуждении крайне неудачных моделей Коммодоров и считаете их важным «доказательством» того, что тесты на Бейсике ни в коем случае нельзя использовать для сравнения производительности ПК в целом, то ответьте на такой вопрос: много ли вы знаете компьютеров с такой, мягко говоря, странной архитектурой, когда программы в ПЗУ (Бейсик) работают намного медленнее программ в ОЗУ (а если это не так, то зачем писать, что скорость Бейсика на Коммодоре 264 не показательна?) и компьютеров, у которых процессор тормозится видеоконтроллером в 1,5 с лишним раза? Если у создателей этого ПК не получилось сделать так, чтобы ПК и работал с нормальной (для своего процессора) скоростью, и мог использовать для Бейсика максимальный объём ОЗУ, то это вовсе не означает наличие таких же странных «заморочек» у других ПК (у того же С64 их не было, как и у Apple II, VIC-20 и т.п.). И, естественно, никто не заставляет нас «тупо» сравнивать скорость ПК на основании лишь показателей Бейсика без учёта особенностей этих ПК и Бейсиков.
Более того, я не раз уже писал, что непосредственно сравнивать по результатам этих тестов можно лишь те ПК, которые имеют близкие по происхождению и принципам работы Бейсики. Для остальных – конечно, надо учитывать и особенности Бейсиков, и особенности ПК.
Но я абсолютно не согласен с утверждением, что результаты тестирования на Бейсике – «не показательны». Посмотрите на таблицу и графики – в каком месте они не показательны, где, по-вашему, результаты близких версий Бейсика «врут», явно не соответствуя реальному соотношению скоростей работы разных ПК?
Кстати, я ориентируюсь по среднему результату тестов ВМ1-ВМ7 (общий показатель для «простых» тестов, мало зависящих от разрядности ПК и типа процессора), а также ВМ8 (а лучше, при наличии, ВМ8М – без неопределенности, связанной с разным алгоритмом вычислений степени) – хороший показатель для более сложных программ, намного более зависимый от разрядности и архитектуры процессора. И, конечно, учитываю точность вычислений – как видим, у всех Бейсиков с «двойной» точностью скорость вычислений намного ниже.
И ещё хочу написать о ПК, подобных Коммодору 264 на процессорах семейства 6502 и 6809 – к сожалению, чудес не бывает. Высочайшая (для процессора середины 70-х) эффективность работы относительно других моделей (Z80, 8080, PDP-совместимых) на одинаковой частоте относится в основном лишь к случаю, когда процессор работает на частоте порядка 1 МГц. Большинство моделей на 6502 с большей частотой (а это и Atari XL/XE, и Commodore Plus/4, и Acorn Electron (в ОЗУ), и Apple III) имеют очень значительное торможение процессора – до 1,5 раз и более. Единственные известные мне подобные ПК, лишённые такого явного недостатка – BBC Micro и, вроде бы, Commodore 128 (оба имеют процессор с частотой 2 МГц). То есть, если при частоте 1 МГц процессор 6502 почти у всех ПК работает практически в полную силу, то на частоте ближе к 2 МГц, видимо, уже очень трудно избежать торможения. Причём от типа видеоконтроллера это не зависит – торможение есть и у ПК с «крутыми» видеопроцессорами (Атари) и у ПК с более простыми (традиционными) видеоадаптерами (Apple III, Commodore Plus/4, Acorn Electron). А вот ПК с процессорами, требующими гораздо большего числа тактов на команду (8080, Z80, 8086/8088, К1801 и др.), могут с примерно такой же по скорости памятью работать на гораздо более высоких частотах (до 4-5 МГц) с не таким сильным торможением или даже вообще без торможения.
Не могу назвать майкрософтовские Бейсики для Коммодоров и IBM PC медленными – среди классических интерпретаторов они имеют отличную скорость. А насчёт компиляторов могу сказать так – если уж есть сомнения насчёт адекватности результатов интерпретаторов (которые на многих ПК буквально близнецы-братья), то скорость программ после компиляторов должна вызывать в 10 раз больше вопросов – все компиляторы ещё более разные, чем интерпретаторы. И никакого представления о быстродействии архитектуры они не дают – одни ускоряют выполнение программ по сравнению с интерпретаторами, скажем, раза в 3 (как те же первые компиляторы от Майкрософт), а другие – раз в 50. А та же программа (конечно, достаточно простая, без сложных вычислений), написанная на ассемблере, может работать раз в 500 быстрее, чем на интерпретаторах.
Никакой особенной чувствительности тестов ВМ1-ВМ8 к мелочам не наблюдается – посмотрите графики показателей относительно ВМ3 – даже наличие или отсутствие предварительного преобразования констант (а это совсем не мелочь) не очень-то сказывается на этих тестах. Графики как раз показывают очень близкие принципы работы не только у Бейсиков одного происхождения, но и у достаточно разных типов.
Бейсики, в основе своей, как раз очень неплохо сделанные программы – вряд ли средний уровень программ на ассемблере был выше, чем у трансляторов Бейсика. Конечно, отдельные Бейсики вызывают законные вопросы (как у «Спектрума», «Атари», MSX, TI-99/4A, Бейсик-11 в части скорости цикла FOR и т.д.), но эти вопросы наверняка имеют достаточно простые ответы и как раз показывают, что основная часть Бейсиков (более быстрых) была хорошо оптимизирована и сделана вполне профессионально.





Ответить с цитированием