|
Скорость работы 1С | ☑ | ||
---|---|---|---|---|
0
LeshiyL
19.02.10
✎
08:15
|
Написал простенькую процедурку, которая перебирая числа от 1 до 50000 выбирает простые (опять же по циклу). Переписал идентичный код на C# (за исключением мелких добавок к синтаксису). Скорость работы ехе-шника C# в 6 раз выше чем скорость работы 1С. ПОЧЕМУ???? Ведь здесь вообще никаких обращений к базе! Там чистая математика и пара сравнений и все.... Чего-то я не понимаю в этой жизни...
|
|||
1
AlStorm
19.02.10
✎
08:16
|
(0)
Это что, ты с С++ сравни:)) |
|||
2
DrZombi
гуру
19.02.10
✎
08:20
|
(0)Сила в уровне, т.е. чем выше уровень, тем тормознее программа :)
С++ - ниже уровнем :) и следовательно быстрее :) |
|||
3
LeshiyL
19.02.10
✎
08:20
|
(1) Кто бы еще сказал почему... И что с этим делать? Выносить все расчеты в свою DLL?
|
|||
4
Sadovnikov
19.02.10
✎
08:21
|
(3) Для начала запусти замер производительности и удивись, что у тебя далеко не рассчеты тормозят.
|
|||
5
DrZombi
гуру
19.02.10
✎
08:22
|
(3)Лучше начни сравнивать не с С++, а с 7.7... Вот тогда ты поймешь, где лучше :)
|
|||
6
AlStorm
19.02.10
✎
08:24
|
(6)
А вот если рекурсию в 1с сделать, то разница будет не в 6, а в 10-20 больше:( |
|||
7
LeshiyL
19.02.10
✎
08:25
|
(4) замер показывает что больше всего съедается именно делением (более 50%)
|
|||
8
Кирпич
19.02.10
✎
08:27
|
(0)Автор, ты с какой планеты?
Да вроде никто и не ждал от 1с большой скорости. в 6 раз очень даже неплохой результат |
|||
9
vde69
19.02.10
✎
08:27
|
(7) покажи код
различие скорости иметт 2 причины 1. 1с - транслятор 2. 1с - использует переменные типа variant |
|||
10
Sammo
19.02.10
✎
08:28
|
Какой тип числа в шарпе и какой в 1С...
|
|||
11
AlStorm
19.02.10
✎
08:29
|
(10)
Кстати, какое максимальное число поддерживает 1с? |
|||
12
IamAlexy
19.02.10
✎
08:29
|
(0)
вали. пиши учетные системы на С# меньше народу - больше кислороду.. |
|||
13
dk
19.02.10
✎
08:30
|
если критично - вынеси математику в WSH
и пройдись по поиску уже не раз обсуждали |
|||
14
Sadovnikov
19.02.10
✎
08:31
|
(7) Показывай код.
|
|||
15
LeshiyL
19.02.10
✎
08:32
|
ВремяСтарта=ТекущаяДата();
ПроверкаРазрядности=0; Для ТекущееЧисло=4 по 50000 Цикл ФлагПростогоЧисла=Истина; Для N=2 по ТекущееЧисло-1 Цикл РезультатОтДеления=ТекущееЧисло/N; Если РезультатОтДеления=Цел(РезультатОтДеления) Тогда //значит это уже не простое число ФлагПростогоЧисла=Ложь; Прервать; КонецЕсли; КонецЦикла; Если ФлагПростогоЧисла Тогда //значит перебрал все числа и не нашел //проверяем разрядность Если Цел(ТекущееЧисло/1000)<>ПроверкаРазрядности Тогда ПроверкаРазрядности=Цел(ТекущееЧисло/1000); DT=ТекущаяДата(); СтрокаВывода=""+DT+" "+ТекущееЧисло; Сообщить(СтрокаВывода); КонецЕсли; КонецЕсли; КонецЦикла; ВремяФиниша=ТекущаяДата(); Итог="Стартовали в "+ВремяСтарта+" Финишировали в "+ВремяФиниша; Сообщить(Итог); |
|||
16
Дикообразко
19.02.10
✎
08:32
|
сколько можно это обсуждать?
или без этого год не удастся? |
|||
17
Sadovnikov
19.02.10
✎
08:34
|
(15) Оооочччееень жизненно необходимый код, ага...
|
|||
18
IamAlexy
19.02.10
✎
08:35
|
представляете, подъемный кран ездит по скоростной трассе медленнее чем... чем да медленнее чем рено логан...
или я чегото в этой жизни не понимаю? |
|||
19
IamAlexy
19.02.10
✎
08:36
|
(0) ты замерь время требуемое для организации системы учета на C# и 1C..
из трех документов, плана счетов с 5 счетами и тремя отчетами - оборотносальдовая, карточка счета и анализ субконто. :) |
|||
20
supremum
19.02.10
✎
08:39
|
(0) А на ассемблере можно написать код, который будет раз в 100 быстрее чем на C# ("ПОЧЕМУ????") :))
|
|||
21
AlStorm
19.02.10
✎
08:42
|
Чето код какой-то неоптимальный...
|
|||
22
AlStorm
19.02.10
✎
08:42
|
(20)
Ну в 100 раз ты это хватил. |
|||
23
supremum
19.02.10
✎
08:48
|
(22) Это художественное преувеличение, призвано показать всю силу драматического эффекта :)
|
|||
24
AlStorm
19.02.10
✎
08:49
|
(23)
Мне надо табличку "сарказм" =) |
|||
25
LeshiyL
19.02.10
✎
08:52
|
(15) для замера производительности код - то что надо особенно если в рельной задаче все упирается исключительно в вычисления
|
|||
26
supremum
19.02.10
✎
08:55
|
(25) Вообще то 1С это не мат. пакет, а исключительно учетная система. Зачем решать на ней не свойственные задачи?
|
|||
27
Artful Den
19.02.10
✎
09:05
|
Ветки пятница не нашел. Что-ж, и здесь неплохо ))
ЗЫ: Ушел за попкорном. |
|||
28
Sadovnikov
19.02.10
✎
09:09
|
(25) "в рельной задаче все упирается исключительно в вычисления" - покажи-ка эту реальную задачу? И код, ее обрабатывающий.
|
|||
29
orefkov
19.02.10
✎
09:09
|
(15)
Ну как нагрузочный тест такой код конечно пойдет, но так-то криво. В C# небось для проверки делимости "%" юзал? |
|||
30
vde69
19.02.10
✎
09:15
|
(28) я делал "Триангуляцию 3D облаков" там скорость вычислений критична :)
|
|||
31
hhhh
19.02.10
✎
09:17
|
(25) Функцию Сообщить() убери. Она очень тормозная.
|
|||
32
Sadovnikov
19.02.10
✎
09:17
|
(30) А при этом выводил зависимоть от скорости размножения мух-дроздофил в условиях крайнего севера?
|
|||
33
supremum
19.02.10
✎
09:18
|
Немного офф.
В далекие времена у меня на пне 233 поkучалась соптимизировать код до 233 Mflops |
|||
34
supremum
19.02.10
✎
09:18
|
поkучалась =получалось
|
|||
35
vde69
19.02.10
✎
09:21
|
(32) ну я в 1с это делал по тому как исходный массив очень большой (десятки миллионов точек) и при работе требовалось сохранять промежуточные варианты для возможности отката назад части и выбора другой стратегии. Для этого нужна была база данных, а на Дельфях я не захотел заморачиватся с такой задачей
|
|||
36
AlStorm
19.02.10
✎
09:24
|
(0)
Давай на C# код! |
|||
37
Fynjy
19.02.10
✎
09:25
|
Перепиши корректно в asm совсем офигеешь ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |