Entry tags:
А что по скорости?
Регулярно можно видеть рассуждения, мол напишем за 20 минут наш проект на фичастом языке сверхвысокого уровня H, а критические по производительности участки кода сделаем на быстром низкоуровневом языке C. Что-то у меня ощущение, что об этом чаще говорят, чем применяют. Я поспрашивал знакомых программистов, тех что поближе, - подобным не занимаются. Один, говорит, пытался, а потом просто стал писать на плюсах. Даже в интернетах, читал о подобном только в исполнении
levgem и
lionet. В связи с чем пара вопросов:
1) Переписываете ли вы куски кода на низкоуровневом языке в угоду производительности?
2) Какой язык вы для этого используете?
Я ведь правильно понимаю, что нет других низкоуровневых языков кроме сишечки? Биндинги ведь только к ней делаются.
![[profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
1) Переписываете ли вы куски кода на низкоуровневом языке в угоду производительности?
2) Какой язык вы для этого используете?
Я ведь правильно понимаю, что нет других низкоуровневых языков кроме сишечки? Биндинги ведь только к ней делаются.
no subject
Сам таким не занимаюсь, т.к. за производительностью я ещё не гонялся.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
no subject
я так не делаю, но видел подобное на github
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)
(no subject)
no subject
еще numpy/scipy вроде тоже.
А у меня все вычисления упираются в "как наиболее эффективно прочесть наименьшую часть БД размером в 10-50 гб и минимизировать расстояние от чтения до вычисления", так что мне вряд ли поможет переписывание на низкоуровневых языках.
(no subject)
(no subject)
(no subject)
no subject
(Anonymous) 2012-09-29 03:05 pm (UTC)(link)LinkedListNode
{
T value;
LinkedListNode* next;
}
class LinkedList
{
LinkedListNode* root;
...
}
typedef LinkedList MyList;
typedef LinkedList HisList;
В С++ это передается как есть, для Шарпа генерируется следующие структуры LinkedListNode_instantation_int, LinkedList_instantation_int, LinkedListNode_instantation_SomeStruct, LinkedList_instantation_SomeStruct:
LinkedListNode_instantation_int
{
int value;
LinkedListNode* next;
}
class LinkedList_instantation_int
{
LinkedListNode_instantation_int *root
}
Для HisList тоже самое. Что-то типа инстанцирования шаблонов. Все это с поддержкой области видимости. LinkedList < SomeTemplate < SomeOtherTemplate < int > > > то же поддерживается. Вопрос - не велосипед ли я изобретаю?
P.S.: Перед тем, как прочел этот пост, сидел отлаживал описанную выше утилиту.
(no subject)
(no subject)
(Anonymous) - 2012-09-29 16:12 (UTC) - Expand(no subject)
(no subject)
(Anonymous) - 2012-09-29 16:20 (UTC) - Expandno subject
no subject
Еще Javascript+C был.
(no subject)
(no subject)
(no subject)
no subject
Но пример, когда С был реально нужен у меня есть - писал когда-то индексатор для MS Indexing Service, там производительность была критична и заголовки портировать на что-то не хотелось. Т.е. изначально отладил сам алгоритм на дельфи, а потом итог оформил на С.
no subject
(no subject)
(no subject)
no subject
По прошестви пары лет я выкинул с-шный кусок потому что это очень неудобно таскать такие экстеншны. И ничего в общей скорости не поменялось.
Там где скорости эрланга не хватает возможно и скорости plain c может не хватить, потребуются всякие intrinsic