Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15  ОтправитьПечать
Очень популярная тема (более 25 ответов) Сумасшедшие идеи для 1С. Кто больше? (число прочтений - 72060 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #180 - 19. Октября 2007 :: 17:05
Печать  
kms писал(а) 19. Октября 2007 :: 16:56:
Z1

Тут интересно, что
1. Зависимость времени вставки и выборки от размера набора данных для SQLITE линейна - это превосходный результат для SQLITE engine.
Для построения индекса - тут логарифм двойки, по-моему тоже вполне соблюдается.

2. int в памяти - это действительно int (в отличие от ИТ).

А вот для ИТ время выборки нелинейно.
Так что движок SQLITE, как мы и думали, весьма перспективен для проведения операций над множествами.
P.S.
Сама компонента пока падает время от времени, на этом простом тесте.


В sqlite есть  PRAGMA command . C помощью этой команды
можно оптимизировать использование ресурсов компьютера.
Не знаю запускал много раз ни разу не упала.
пробовал ставить разные типы блокировок (на транзакцию insert )
DEFERRED , IMMEDIATE , EXCLUSIVE - результат одинаковый в пределах погрешности.





Цитата:
Так что движок SQLITE, как мы и думали, весьма перспективен для проведения операций над множествами.

Добавь сюда возможность написания собственных функций на CI  , которые можно будет применять к таблицам sqlite.

  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #181 - 19. Октября 2007 :: 17:26
Печать  
Z1 писал(а) 19. Октября 2007 :: 17:05:
Добавь сюда возможность написания собственных функций на CI  , которые можно будет применять к таблицам sqlite.

Уже прибавил, как и многое другое.
Сегодня хороший день, да еще и пятница. Улыбка

По падениям: поставь лимит побольше, у меня гарантированно падает на 4 млн. строк.

bad_alloc, в фазе выгрузки в таблицу
+
наверное, дело не в компоненте
видимо, это стандартная тз так себя ведет, прожорливая тля
  

bad_alloc.PNG ( 13 KB | Загрузки )
bad_alloc.PNG

De quelle planète es-tu?
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #182 - 19. Октября 2007 :: 18:15
Печать  
kms писал(а) 19. Октября 2007 :: 17:26:
bad_alloc, в фазе выгрузки в таблицу

Хм... Похоже, с bad_alloc в 1С все в порядке Улыбка А это ведь хорошо... Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #183 - 19. Октября 2007 :: 18:21
Печать  
kms писал(а) 19. Октября 2007 :: 17:26:
По падениям: поставь лимит побольше, у меня гарантированно падает на 4 млн. строк.

bad_alloc, в фазе выгрузки в таблицу
+
наверное, дело не в компоненте
видимо, это стандартная тз так себя ведет, прожорливая тля

Ты прав
Да падает. Но падает именно стандартная таблица значений.


sqlite работает
Вот тест
Код
Выбрать все
	имя = ":memory:";
	Попытка
		база = СоздатьОбъект("SQLiteBase");
	Исключение
		//ЗагрузитьВнешнююКомпоненту("1sqlite.dll");
		ЗагрузитьВнешнююКомпоненту("c:\1cpp_test\"+"1sqlite.dll");
		база = СоздатьОбъект("SQLiteBase");
	КонецПопытки;

	_mt =СоздатьОбъект("Math");
	_mt.SRAND(_GetPerformanceCounter());

	база.Открыть(имя);
	запрос = база.НовыйЗапрос();
	запрос.ВыполнитьЗапрос("create table test(cnt int)");
	т1 = _GetPerformanceCounter();
	запрос.ВыполнитьЗапрос("begin transaction");
	запрос.Подготовить("insert into test values(?)");
	Для Номер = 1 По __лим Цикл
		_знач =Окр(_mt.RAND1() * __лим);
		запрос.УстановитьПараметр(1, _знач);
		запрос.Выполнить();
	КонецЦикла;
	запрос.ВыполнитьЗапрос("commit transaction");
	т2 = _GetPerformanceCounter();
	запрос.ВыполнитьЗапрос("create index i_cnt on test(cnt)");
	т3 = _GetPerformanceCounter();
//	тз = запрос.ВыполнитьЗапрос("select cnt from test order by cnt");
	тз = запрос.ВыполнитьЗапрос("select count(*) from test");
	т4 = _GetPerformanceCounter();
	Сообщить("Вставка = " + (т2 - т1) + " Индексация = " + (т3 - т2) + " Выборка = " + (т4 - т3));
	Сообщить("Строк = " + тз.КоличествоСтрок());
	сообщить("В sqlite строк = " + тз.ПолучитьЗначение(1,1));
	тз.ВыбратьСтроку();
 


Результат выполнения этого кода ( при этом комп был загружен и другими задачами )

Тест SQLITE
Вставка = 80684 Индексация = 47814 Выборка = 326
Строк = 1
В sqlite строк = 5000000

Тест SQLITE
Вставка = 161190 Индексация = 115840 Выборка = 656
Строк = 1
В sqlite строк = 10000000

Тест SQLITE
Вставка = 243605 Индексация = 188293 Выборка = 981
Строк = 1
В sqlite строк = 15000000

Т.е sqlite обработала 15 миллионов строк.
Время вставки и выборки линейное.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #184 - 19. Октября 2007 :: 18:26
Печать  
Uzhast писал(а) 19. Октября 2007 :: 18:15:
kms писал(а) 19. Октября 2007 :: 17:26:
bad_alloc, в фазе выгрузки в таблицу

Хм... Похоже, с bad_alloc в 1С все в порядке Улыбка А это ведь хорошо... Улыбка

А, нет, не в порядке. Такой код:
Код
Выбрать все
	try {
		int *p = new int [500000000];
	}
	catch (std::bad_alloc) {
		::MessageBox (0, "bad_alloc", "", 0);
	}
	catch (CMemoryException *) {
		::MessageBox (0, "CMemoryException", "", 0);
	}
	catch (...) {
		::MessageBox (0, "catch", "", 0);
	}
 


выдает CMemoryException. Хм, ну и откуда тогда вылазит bad_alloc????
Нет, этот одинэс когда-нибудь доведет меня до ручки...
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #185 - 19. Октября 2007 :: 18:45
Печать  
Uzhast писал(а) 19. Октября 2007 :: 18:26:
выдает CMemoryException. Хм, ну и откуда тогда вылазит bad_alloc????
Нет, этот одинэс когда-нибудь доведет меня до ручки...

Просто 1С любят поэзию.
Если х&й вернет malloc мы ответим: bad_alloc!

В остальных случаях - обычная проза жизни для MFC.

Z1
Классные цифры!
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #186 - 19. Октября 2007 :: 18:49
Печать  
kms писал(а) 19. Октября 2007 :: 18:45:
Просто 1С любят поэзию.
Если х&й вернет malloc мы ответим: bad_alloc!

Очень довольный Вот долбойопстеры! Похоже, они сами не знают, как у них в 1С ошибки памяти обрабатываются Улыбка
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #187 - 19. Октября 2007 :: 19:51
Печать  
Разве имеет значение какое из исключений вернула 1с при выделении памяти?
нас орда - один огурец плохо Улыбка
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #188 - 19. Октября 2007 :: 19:56
Печать  
spock писал(а) 19. Октября 2007 :: 19:51:
Разве имеет значение какое из исключений вернула 1с при выделении памяти?

Еще как имеет! Улыбка Потому что, если ловить не то исключение, то при нехватке памяти будем тупо вылетать или зомбироваться. А если ловить ТО, то можно тихо, цивильно, сообщить юзверю, что его желания превышают его возможности, и спокойно работать дальше. Без потерь данных и аварийных вылетов.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #189 - 20. Октября 2007 :: 04:53
Печать  
Давайте SQLite обсуждать в http://www.1cpp.ru/forum/YaBB.pl?num=1192855975
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #190 - 23. Октября 2007 :: 03:40
Печать  
В порядке бреда: можно хранить классы в бд? - но это для SQL в FoxPro, есть конечно поля MEMO но чем туда писать? Или хранить в SQLite Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #191 - 23. Октября 2007 :: 06:50
Печать  
Nick писал(а) 23. Октября 2007 :: 03:40:
В порядке бреда: можно хранить классы в бд? - но это для SQL в FoxPro, есть конечно поля MEMO но чем туда писать? Или хранить в SQLite Улыбка

??? Зачем?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #192 - 23. Октября 2007 :: 07:01
Печать  
Arta писал(а) 23. Октября 2007 :: 06:50:
Nick писал(а) 23. Октября 2007 :: 03:40:
В порядке бреда: можно хранить классы в бд? - но это для SQL в FoxPro, есть конечно поля MEMO но чем туда писать? Или хранить в SQLite Улыбка

??? Зачем?

Ну например единое хранилище классов в SQL базе,
Решение проблемы с блокировкой при загрузке одновременно несколькими пользователями,
Бэкап классов в месте с базой - у тебя будет и корректная база и классы соответствующие этой базе
Изменение текста класса из 1С Улыбка - хотя наверное можно и сейчас с текстом такое провернуть
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #193 - 23. Октября 2007 :: 07:32
Печать  
+ Загрузка самого md на SQL Улыбка - можем обновляться в процессе работы конечно останется вопрос по реструктаризации базы, и внешняя программа для запуска 1С - где прописывается строка соединения с базой
Вот самая сумасшедшая идея  Смех
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Сумасшедшие идеи для 1С. Кто больше?
Ответ #194 - 23. Октября 2007 :: 07:51
Печать  
Nick писал(а) 23. Октября 2007 :: 07:32:
+ Загрузка самого md на SQL Улыбка - можем обновляться в процессе работы конечно останется вопрос по реструктаризации базы, и внешняя программа для запуска 1С - где прописывается строка соединения с базой
Вот самая сумасшедшая идея  Смех

Это уже сделал ищи romix на miste ( отдельной компонентой)
по моему это не нужно ( я при острой необходимости всех вышибаю)
представь в старом md 2+2 равно 4,
а новом md 2 + 2 равно 5
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 11 12 [13] 14 15 
ОтправитьПечать