Решил снова пописать про 1С результаты некоторых набросков, которые делаю дома

Feb 05, 2010 01:05

Немного теории.
Работа со стороками. Самый базовый элемент работы любой платформы. Конкатенация (соединение строк). Казалось бы - ну что может быть проще и однозначнее? Ан нет. Выражение T = "А"+"Б"; (если оно не вычислено на этапе компиляции/разбора) требует выделения памяти для "А", памяти для "Б", анализа длин "А" и "Б", выделение памяти для T, ( Read more... )

Leave a comment

Comments 25

dennyrolling February 4 2010, 19:56:27 UTC
да, а если на шкаф залезть... :)

Reply

speshuric February 5 2010, 13:59:56 UTC
...взяться рукой за люстру и вытянуться, то видно!

Reply


dennyrolling February 4 2010, 20:13:07 UTC
децл по сути дела. в дотнете строчки медленно складывать только потому что кто-то решил что строчки обязательно должны быть immutable, и с этого они поимели много головняков, включая придумывание стринг билдера и заставление людей им пользоваться. люди пользоваться не хотят, про стрингбилдер не знают и в итоге залетают на перф как фанеры над парижем ( ... )

Reply

speshuric February 5 2010, 14:33:59 UTC
1. В 1С полной компиляции нет, только достаточно примитивный разбор на лексемы. Я удивлюсь, если 1С "А"+"Б" будет считать на этапе этого разбора. Проверить можно, но лень. Я вообще как бы в курсе, что всё нормальное "А"+"Б" посчитает заранее, да и про то что память можно выделять заранее - тоже понятно. И, кстати, мне в целом было бы не западло это сделать, если бы задача была критична к этому. :) Только маааленькая бяда. Чтобы запустить этот код из 1С накладные расходы примерно как мне сходить к тебе домой в сортир. Даже если твой сортир в 1000 раз эффективнее моего :))) (Это, конечно, если исходить из реальности, что я нахожусь в Нске ( ... )

Reply

оптимист redokov February 6 2010, 23:22:51 UTC
25% очень хорошая оценка.
Тема хорошая, заставляет подумать над простыми вещами.

Reply

Re: оптимист speshuric February 7 2010, 05:06:25 UTC
нене. Я не оптимист. Лет 5 назад этот показатель стабильно зашкаливал за 50%. Сейчас как я вижу - это уже ближе к 25% (ну или сильнее фильтры на собеседованиях :) )

Reply


vkv February 5 2010, 04:12:52 UTC
хороший комп.
у меня на 2х двухядерных ксеонах 3ггц третий способ - 1.62 секунды.
или 0.4 - это каждая итерация, а не 10?

Reply

speshuric February 5 2010, 13:56:11 UTC
Угу... И это в виртуалке :)))
На хостовой машинке интел i7, слегка разогнанный, память 6ГБ (низкие тайминги, слегка разогнана).
Виртуалка с 1С - VMWare - Вин2к3, 1С 8.2.10.77, 1 ГБ, 1 проц.

Reply

vkv February 5 2010, 14:03:31 UTC
угу все 10? оО
памяти у меня тоже 6, но оно жрало не больше полутора, в пустой файловой конфе. и 40% процессоров в максимуме, а так обычно 27% (из них три, надо понимать, системе.)
восьмерка правда 9.356

Reply

speshuric February 5 2010, 14:35:16 UTC
все 10. Пришлось в отладчике смотреть чтобы интервалы менее секунды засечь.

Reply


Leave a comment

Up