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

Feb 05, 2010 01:05

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

Leave a comment

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

Reply

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

Reply

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

Reply


Leave a comment

Up