stdray: (Default)
[personal profile] stdray
Регулярно можно видеть рассуждения, мол напишем за 20 минут наш проект на фичастом языке сверхвысокого уровня H, а критические по производительности участки кода сделаем на быстром низкоуровневом языке C. Что-то у меня ощущение, что об этом чаще говорят, чем применяют. Я поспрашивал знакомых программистов, тех что поближе, - подобным не занимаются. Один, говорит, пытался, а потом просто стал писать на плюсах. Даже в интернетах, читал о подобном только в исполнении [profile] levgem и [personal profile] lionet. В связи с чем пара вопросов:

1) Переписываете ли вы куски кода на низкоуровневом языке в угоду производительности?
2) Какой язык вы для этого используете?

Я ведь правильно понимаю, что нет других низкоуровневых языков кроме сишечки? Биндинги ведь только к ней делаются.

(no subject)

Date: 2012-09-29 12:08 pm (UTC)
From: [identity profile] izard.livejournal.com
Переписываю ли я? Да 50% работы как консультанта по производительности из этого состоит. Правда, переписываю или сразу на асме, или на С с интринзиками.

(no subject)

Date: 2012-09-29 12:21 pm (UTC)
From: [identity profile] stdray.livejournal.com
А на чем как написаны проекты, которые вы консультируете?

>сразу на асме
Ого, а не слишком сурово? Как это потом поддерживать или запустить на новом_классном_дорогом_интелловском процессоре?

(no subject)

Date: 2012-09-29 12:53 pm (UTC)
From: [identity profile] izard.livejournal.com
Встречались C, C++, Erlang, Java, пара экзотических внутриклиентских паскалеподобных языков.

Сложности с последующей поддержкой не такие большие, т.к.
1. 100% моих клиентов пишут софт, который не предназначен для широкого распространения (максимум - десятки тысяч контроллируемых инсталляций), и предназначен для работы на ограниченном множестве железа.
2. На асме переписывается несколько hot_fucntion_N, старая функция никуда не выкидывается, остается на всякий случай или как часть документации.
3. Главный asset Интел - совместимость. Код, откомпилированный на 8086, запустится на Core i7 (с некоторыми условиями и ограничениями, но условия в принципе выполнимы, а ограничения редки и документированы). Но это 35 лет разницы. В пределах 15 лет (типичное время жизни софта, с которым я работаю) проблем совместимости вообще нет.
4. Однако в новом_классном_дорогом_интелловском процессоре могут появится новые инструкции, которые позволят еще ускорить код - тогда клиент is welcome to be my guest еще раз.
5. Бывают регрессии по производительности с новыми архитектурами. Обычно я могу гарантировать, что в моем коде их не будет в течении 2 следующих поколений.

December 2019

S M T W T F S
1234567
891011121314
15161718192021
222324252627 28
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags