| Автор |
Сообщение |
Flanker
Участник
|
#1 Дата: 03 03 2010 20:51:05
Ответить
Кто знает как данные строки S of String распределяются в памяти ?
Нужно быстро загружать большые объемы данных до 2GB в строку типа String
|
Мама Стифлера
Участник...
|
#2 Дата: 03 03 2010 20:56:27
Ответить
string не значит что delphi выделит тебе непрерывный кусок памяти Нужно быстро загружать большые объемы данных до 2GB в строку типа String имхо лучше делать подругому
|
DrPooh
Участник
|
#3 Дата: 03 03 2010 21:04:31
Ответить
Flanker Боюсь 2 Гб в памяти одним куском никак не лягут, надо более извращенные способы придумывать для этой задачи
|
Иван Иваныч
Участник
|
#4 Дата: 03 03 2010 21:09:50
Ответить
надо более извращенные способы придумывать для этой задачи malloc, например ;-)
|
Flanker
Участник
|
#5 Дата: 03 03 2010 21:24:12
Ответить
Мама Стифлера Уверен ??????..... то есть string хранится кусками?? ....тогда конечно побайтная запись в память не подойдет....
Есть конечно PChar......но не нравится его тупость обработки симовла Chr(0) как конец строки......а мне симовл ноль тоже нужен
|
DrPooh
Участник
|
#6 Дата: 03 03 2010 21:26:58
Ответить
Flanker Побайтовая запись пойдет как поток, а чего ты с ним дулать будешь - уже твоя фантазия подскажет
|
Flanker
Участник
|
#7 Дата: 03 03 2010 21:31:16
Ответить
ак хранятся строки? Поиск: Тип String: по смещению -4 храниться длина строки по смещению -8 храниться счётчик ссылок на строку (когда он обнуляется строка уничтожается) Сама строка располагается в памяти как есть - каждая буква занимает 1 байт.
|
Мама Стифлера
Участник...
|
#8 Дата: 03 03 2010 21:44:01
Ответить
Уверен ?????? Более чем google > Менеджер памяти Delphi
|
blagovoz
Участник...
|
#9 Дата: 03 03 2010 23:21:39
Ответить
а я всегда считал что в стринг больше чем 255 символов невлазит...
|
blagovoz
Участник...
|
#10 Дата: 03 03 2010 23:24:13
Ответить
можно попробовать чем нить из Windows API...
|
ogre
Участник...
|
#11 Дата: 04 03 2010 02:06:44
Ответить
Flanker а что за задача такая? Звучит странно (2 гига в строку - для чего?). Еще и проблема с #0.
|
Flanker
Участник
|
#12 Дата: 04 03 2010 09:30:14
Ответить
ogre Ладно пусть не 2 Гига, хотябы несколько МБ..... просто не люблю писать программы,....которые загибаются...как только ты открываешь большой файл....
Из файла загружаются блоки данных разного размера от 0 байт до 2 Гб....типа данных заранее неизвестен.....часто это может быть просто ANSI строка...а может и бинарный файл.
Информация выводится в StringGrid.... каждая ячейка типа String
|
Flanker
Участник
|
#13 Дата: 04 03 2010 09:34:39
Ответить
blagovoz Не WinAPI отпадает......из идейных соображений. Алгоритм должен быть красивый и надежный и простой....к тому же нечто подобное потом приедтся создавать на других платформах....а там WinAPI нет.
|
ogre
Участник...
|
#14 Дата: 04 03 2010 11:03:06
Ответить
Flanker blob-ы? А зачем тебе весь файл/объект целиком? StringGrid - штука не для больших объектов. В любом случае, для визуализации тебе не нужно больше нескольих килобайт максимум.
|
Jekil
Участник
|
#15 Дата: 04 03 2010 11:23:05 ° Поправил: Jekil
Ответить
Flanker Из файла загружаются блоки данных разного размера от 0 байт до 2 Гб....типа данных заранее неизвестен.....часто это может быть просто ANSI строка...а может и бинарный файл. про API вообще забудьте. если первой мыслью было использовать стринги - возможно красивый и надежный и простой алгоритм у вас родится далеко не сразу :)))
не совсем понятны (точнее, совсем непонятны) условия задачи. я бы рекомендовать посмотреть в сторону TList, TCollection.
upd. ...а зачем в СтрингГрид выводить "бинарный файл" 2гб???... О_о
|
Flanker
Участник
|
#16 Дата: 04 03 2010 14:13:37
Ответить
Jekil Программа это очень простой Viewer бинарного файла определенной структуры. В переменной типа String, в частности в ячейках StringGrid.Cells[i.j] прекрасно хранятся фалйы по нескольку Мб, которые представлены в виде строки, копируются без потери.
Например строка может быть файл photo.jpeg, то есть содержать символы Chr(0), которые PChar принятый в WinAPI считает концом строки.
Моно конечно хранить блоки данных в отдельной структуре типа PByteArray......а в стринг грайд выводить первый килобайтик.....но что-то мне подсказывает что StringGrid прекрасно скушает и многомегабайтные строки String......в отличае от notepad.exe или Word.exe которые любят умирать когда в них файл откроешь бинарный на 5Mb
|
Zz_
Участник
|
#17 Дата: 04 03 2010 14:25:42
Ответить
Flanker Смысл? Все равно 2 Гб никакая система тебе не выделит, все это будет идти через файл подкачки. Так что, ИМХО, проще уже и работать с файлами.
|
Мама Стифлера
Участник...
|
#18 Дата: 04 03 2010 14:27:33
Ответить
Индусы нервно курят
|
ogre
Участник...
|
#19 Дата: 04 03 2010 15:14:00
Ответить
Мама Стифлера и густо красят стену йадом....нда...
|
Jekil
Участник
|
#20 Дата: 04 03 2010 15:18:17 ° Поправил: Jekil
Ответить
бинарного файла определенной структуры тогда однозначно смотри TCollection и TCollectionItem. интерфейс - на TListView/OwnerData. StringGrid "дурноватый" компонент, имхо. очевидно, 2гига грузить в оперативу (файл подкачки) тоже "не айс". грузи кусками по мере необходимости вывода.
...а вообще такую кучу данных уже в БД хранить положено. SQLite вполне бы подошла.
|
ogre
Участник...
|
#21 Дата: 04 03 2010 15:28:50
Ответить
для больших объектов есть поток. Или безтиповый файл. Сам не один вьювер создал, но никогда даже не думал пихать весь объект в память (неважно, какую). Для чего?
|
Flanker
Участник
|
#22 Дата: 04 03 2010 21:56:02
Ответить
Народ ну что вы как маленькие.
Я не собираюсь делать то что неправильно....даже если кому-то кажется что я собираюсь это делать. SQL - курит в сторонке, как посредник и тормоз и вообще тут не причем. Как загрузить 2GB в память и прекрасно знаю....не нужны мне для этого другие компоненты....работать с памятью проще и быстрее напрямую.
А для чего тогда оперативка, если ее не использовать.???? Пакет может быть и маленьким порядка 1-2 килобайт....но программа должна работать и при размере пакета в несколько Гигабайт
Zz_ 2ГБ не выделит, но более 1ГБ без проблем.
|
Flanker
Участник
|
#23 Дата: 04 03 2010 22:05:47
Ответить
Суть в чем если StringGrid сможет хранить большие файлы пусть он это и делает, тогда весь алгоритм будет с два десятка строк.....чем проще и быстрее тем лучше.
Пока основной тормоз это побайтная запись из буфера скажем 100 Кб в тип стринг For I:=0 to Size-1 do Str:= Str + Chr(Buf[i]);
Задача положить Buf в стринг побыстрее.
|
Мама Стифлера
Участник...
|
#24 Дата: 04 03 2010 22:29:10
Ответить
For I:=0 to Size-1 do Str:= Str + Chr(Buf[i]);
setlength(Str, Size); strcopy(pchar(Str), Buf);
|
Jekil
Участник
|
#25 Дата: 04 03 2010 22:30:06 ° Поправил: Jekil
Ответить
работать с памятью проще и быстрее напрямую.
For I:=0 to Size-1 do Str:= Str + Chr(Buf[i]);
эти две строчки друг другу цинично противоречат :)
если угодно загрузить два гига в оперативу тремя строчками кода - TMemoryStream и TStringStream в помощь. TFileStream тоже будет полезен.
p.s. если бы некий "вьювер" (например, media player :)) попытался загрузить гиговый файл целиком в оперативу, я бы такой "вьювер" немедленно удалил, а имя "разработчика" на всякий случай запомнил :)))
|
ogre
Участник...
|
#26 Дата: 05 03 2010 03:54:44
Ответить
Flanker Я не собираюсь делать то что неправильно....даже если кому-то кажется - да это не кажется, это открытым текстом написано! Неверной дорогой идете товарищч. для чего тогда оперативка, если ее не использовать. - в первую очередь - для запуска кода. Во вторую - для обработки / кэширования данных. Но не для хранения. Если грузоподъемность машины 500 кг, это вовсе не значит что при ее эксплуатации багажник должен быть забит хламом. Да и ездить быстрее она не станет.
но программа должна работать и при размере пакета в несколько Гигабайт - приведи хоть одну разумную причину объясняющую необходимость загрузки всех нескольих гигабайт бинарного (!!!) объекта в строку(!!!). Только потому что существует StringList?
|
Flanker
Участник
|
#27 Дата: 05 03 2010 12:24:26
Ответить
ogre Я не буду спорить...спасибо что объяснил зачем нужна оперативка.
Если уважаемый господин ogre допускает загрузку ненужных 2 Гб в память, то это неверный путь. Я бы так не сделал, только если нужен мгновенный доступ к каждому байту.
Как по вашему, для чего например текстуры хранят в опраивной памяти....мало того еще и видеопамять придумали.....но ладно я думаю что все прекрасно все понимают..
Мама Стифлера А вот это уже по существу, сенкс большой......на делфи лет 7 не писал наверное.
|
Flanker
Участник
|
#28 Дата: 05 03 2010 12:31:26
Ответить
ogre И кстати вот вам причина:
1. Программа имеет доступ только к одному файлу размером 1 ГБ 2. Программа имеет доступ к всей свободной оперативной памяти 3. Программа вносит изменения почти в каждый байт первоначального файла 4. Записать изменения можно потом только в первоначальный файл.
|
Flanker
Участник
|
#29 Дата: 05 03 2010 12:36:20
Ответить
Мама Стифлера pchar(Str) ....проверю сегодня скорость доступа.....Стрингу....через PChar....надеюсь strcopy не затупит насчет Chr(0)...вроде не должна.
|
Мама Стифлера
Участник...
|
#30 Дата: 05 03 2010 12:39:57
Ответить
Все причины надуманы 1. Читаем кусок 2. Правим 3. Пишем во временный файл
|
Jekil
Участник
|
#31 Дата: 05 03 2010 12:40:59 ° Поправил: Jekil
Ответить
Flanker нефиг там стрингам делать. не для того они придуманы. я за потоки и против "индийского" кода :)
|
Мама Стифлера
Участник...
|
#32 Дата: 05 03 2010 12:57:22
Ответить
pchar(Str) ....проверю сегодня скорость доступа.....Стрингу....через PChar....надеюсь strcopy не затупит насчет Chr(0)...вроде не должна. Хвост отбросится, а как иначе ? Использовать нужно потоки
|
Flanker
Участник
|
#33 Дата: 05 03 2010 13:08:01
Ответить
Мама Стифлера 1. Править нужно весь файл сразу...в разных местах....беспорядочно перемещаясь к отдельным байтам. 2. Читать кусок ради одного байта не выгодно и долго. 3. Временные файлы создавать нельзя...нету прав и жесткого диска вообще может не быть.
|
Flanker
Участник
|
#34 Дата: 05 03 2010 13:11:50
Ответить
Jekil А нахрен мне потоки я не понимаю?
Мне нужен А) побайтный доступ к пакету Б) Представление этого пакета в виде таблицы
При этом код должен быть простой, легко повторимый новичком в программировании....отсюда и стринг.
|
Мама Стифлера
Участник...
|
#35 Дата: 05 03 2010 13:13:34
Ответить
А нахрен мне потоки я не понимаю? google > TFileStream
На крайний случай winapi CreateFile ReadFile WriteFile CloseHandle
|
Flanker
Участник
|
#36 Дата: 05 03 2010 13:16:45
Ответить
Если StringGrid не сожрет много памяти....то пусть себе работает.....а если сожрет....то будет по другому:
Куски памяти типа TByteArray ( PChar отпадает здесь) + 8-16 байт на каждый кусок...как то так.
|
Flanker
Участник
|
#37 Дата: 05 03 2010 13:21:53
Ответить
var IntBuf: array[0..9] of Integer
Stream := TFileStream.Create(OpenDlg.FileName, fmOpenRead); Stream.ReadBuffer(IntBuf, SizeOf(IntBuf));
Я чет не понимаю...может есть методы загрузки в тип String ??????
|
Мама Стифлера
Участник...
|
#38 Дата: 05 03 2010 13:30:30
Ответить
setlength(s, 100); Stream.Read(s[1], 100);
|
Jekil
Участник
|
#39 Дата: 05 03 2010 13:34:39 ° Поправил: Jekil
Ответить
Flanker какие-то буферы-шмуферы... ТурбоПаскаль7, чесслово :) а чем TFileStream не устраивает?
|
Flanker
Участник
|
#40 Дата: 05 03 2010 13:51:39
Ответить
Мама Стифлера Сенкс, попробую это вариант. Только что-то берет сомнение что он сработает.
|
Flanker
Участник
|
#41 Дата: 05 03 2010 13:52:15
Ответить
К слову, в делфовском хелпе английским по белому написано....что в типе Стринг можно хранить до 2 ГБ информации....не думаю что при этом програмисты из борланд будут неэффективно использовать память. А во вторых именно тип Стринг является преимуществ для начинающих програмеров в Делфи.
|
ViC_Kawaii
Участник
|
#42 Дата: 05 03 2010 14:14:54 ° Поправил: ViC_Kawaii
Ответить
Flanker Логика мне подсказывает, что файл, размерами порядка гигабайта с винта в память будет загружаться гораздо дольше, чем если бы было нужно с винта в память загрузить нужный небольшой сегмент этого файла. Я уже молчу про запись изменённого гигабайтного файла и его слитие на винт. =)
А ну как скачок напряжения будет и память очистится вместе с этим двухгиговым файлом? ;)
|
Propovednik
Участник
|
#43 Дата: 05 03 2010 15:10:23 ° Поправил: Propovednik
Ответить
А ну как скачок напряжения будет и память очистится вместе с этим двухгиговым файлом? ;) да эт то предупредить проще простого... единственно потеряется то, что в текущий момент буит в памяти.
|
svg
Участник...
|
#44 Дата: 05 03 2010 16:24:28
Ответить
Flanker Несмотря на вашу неприязь к winapi, почитайте всё же про отображаемые в память файлы - MapViewOfFile. Примеров на дельфи в инете валом. А универсального кроссплатформенного кода всё равно не получится, тем более, что на дельфи пишете...
|
ogre
Участник...
|
#45 Дата: 05 03 2010 17:24:09
Ответить
Flanker Я бы так не сделал, только если нужен мгновенный доступ к каждому байту. для чего? назови причину в которую было бы нестыдно поверить (с)
1. Программа имеет доступ только к одному файлу размером 1 ГБ... А зачем тогда тебе StringList? (в переводе - список строк) 3. Программа вносит изменения почти в каждый байт первоначального файла для этого нет причит тащить все в память. Навигация по потоку - вещь достаточно шустрая. 4. Записать изменения можно потом только в первоначальный файл. - для этого вообще его не нужно тащить в память.
Но если ты хочешь создать программу, которая без спрайта повалит крэй - как говорится, go forward.
|
Flanker
Участник
|
#46 Дата: 05 03 2010 17:49:42
Ответить
ViC_Kawaii Отчасти согласен... скачек напряжения некритичен...условия специфические.
svg Неприязни нет у меня к WinApi......тем более что программирование под винду невозможно без Aplication Program Interface то бишь WinAPI.
Универсальный код мне не нужен, мне нужен универсальный подход. Хотя это и не главная цель.
ogre Я бы так не сделал, только если нужен мгновенный доступ к каждому байту. для чего? назови причину в которую было бы нестыдно поверить (с) Раньше вам казалось что я собираюсь грузить в память ненужные данные, а сейчас вы не понимаете почему я бы не стал этого делать....хотя вы сами писали об этом (пример с машиной) ВАМ ЗАНЯТЬСЯ НЕ ЧЕМ???
|
DrPooh
Участник
|
#47 Дата: 05 03 2010 17:50:58
Ответить
Блин, я еще в самом начале писал про потоки, никто не слушал...пойду помолчу дальше
|
ogre
Участник...
|
#48 Дата: 05 03 2010 18:04:40
Ответить
Flanker Так ты причину-то назвал? Я не заметил ни одной, в которую не стыдно было бы поверить.
|
Flanker
Участник
|
#49 Дата: 05 03 2010 18:22:56
Ответить
Мама Стифлера Stream.Read(S[1], Size); - спасибо работает FileRead(F, S[1], Size); - тоже работает, тогда зачем Stream ????
Товарищи которые пишут про компоненты в делфи ....а вы заглядывали в их исходники....если нет посмотрите что они делают......и спросите себя оно вам надо????? Все сводится к вызову функций WinAPI
Из VCL я беру только визуальные компоненты типа Froms и StringGrid ...кнопочки....чтобы не изобретать велосипед....но с данными предпочитаю работать поближе и побыстрее.... зачем мне десяток вызовов процедур борладновской иерархии...до токого как произойдет вызов функции отркытия файла kernel32.dll ???
А изначальный вопрос так и открыт: тип String памяти?. И если работают FileRead(F, Result[1], Size) не говорит ли это о том что S типа String расположена в памяти одним блоком????
|
Flanker
Участник
|
#50 Дата: 05 03 2010 18:25:44
Ответить
ogre Уточни вопрос: причину чего????? Зачем придумали память....?? Или зачем нужен быстрый доступ к памяти???
|
ogre
Участник...
|
#51 Дата: 05 03 2010 18:27:18
Ответить
Flanker стринг в пару гигов логически будет расположен одним блоком. Физически - где угодно. И скорее всего - в свопе, где ты и получишь "мгновенный доступ к любой ячейке".
|
ogre
Участник...
|
#52 Дата: 05 03 2010 18:31:10 ° Поправил: ogre
Ответить
Flanker мне по работе приходится обрабатывать массивы из сотен гигов. И мне ни разу не потребовалось выделять памяти более чем на сотню килобайт. Пишу на Delphi 6 и 10.
|
Flanker
Участник
|
#53 Дата: 05 03 2010 18:46:39
Ответить
ogre На вопрос вы ответили...за что спасибо.
И скорее всего - в свопе, - вот здесь как раз подойдут советы ребят про менеджер памяти делфи.
ogre Если не секрет в чем заключается обработка....хотя мы и ушли от темы.
|
ogre
Участник...
|
#54 Дата: 05 03 2010 19:07:55
Ответить
Flanker менеджер памяти делфи вряд ли будет "переопределять" айпишный. Потому физическое расположение данных не будет соответсвовать логическому. Иначе сообщение "not enough memory" видели бы на экране очень часто.
По работе приходится работать с тазами банными :), таблицами на сотни гигабайт. Приходится думать о памяти постоянно - и в SQL запросах, и в обрабтке результатов. НУприкинь сам - MS SQL по умолчанию может использовать только 2 гига оперативки..Для всего. А ты хочешь столько в стринг запихать :)
|
Flanker
Участник
|
#55 Дата: 05 03 2010 20:39:10
Ответить
ogre В описании работы менеджера памяти как раз подробно освещяны подобные моменты.
ogre Я вообще считаю что MS SQL Server, да и многие другие сервера не очень то справляются с большими объемами данных.
То что я делаю в рамках проекта OSP - (Open Server Project)....- это некоторое подобие SQL сервера.....вернее так как это распределенная система...то различий больше чем сходств.
На мой взгляд невозможно и не нужно создавать огромную централизованную базу данных...рано или поздно этот путь должен завести в тупик. (Централизовать нужно те данные которые необходимы в данный момент для проведенения соответствующих анализов, формирования отчетов и т.п)
|
Jekil
Участник
|
#56 Дата: 05 03 2010 20:53:54
Ответить
Open Server Project чет яндекс не нашёл... эт чё такое?
|
DimonS
Участник
|
#57 Дата: 05 03 2010 21:14:37
Ответить
Flanker Я вообще считаю что MS SQL Server, да и многие другие сервера не очень то справляются с большими объемами данных.
Ну если MS SQL Server не устраивает по производительности, то используй MS Access. Будешь приятно удивлен.
PS. А какие справляются?
|
Flanker
Участник
|
#58 Дата: 05 03 2010 21:21:46
Ответить
Jekil Open Server Project - вообще то в яндексе ище нет...но позже будет :-) это моя разработка
DimonS MS Access - это что шутка???
Никакие....нельзя записать в один компьютер бесконечное большое количество данных....рано или поздно закончится память или скорость обработки данных.
Выход найден....распределять....централизованные базы данных..... Наращивать мощности и т.п.
Но есть и альтернатива....это даже не я предложил...но можно изначально строить базу данных распределенно.....подход имеет минусы и плюсы. Но свое место имеет.
Проект OSP это попытка расширить достаточно узкий спект распределенный систем на другие задачи, в частности ERP систем.
|
DimonS
Участник
|
#59 Дата: 05 03 2010 21:33:20
Ответить
записать в один компьютер бесконечное большое количество данных Можно записать в один компьютер бесконечное большое количество РАЗУМНЫХ данных.
|
Flanker
Участник
|
#60 Дата: 05 03 2010 21:57:23
Ответить
DimonS Минусы центр. системы: легко уничтожить централизованную систему Легко украсть, скопировать, заблокировать. Трудно использовать большому количеству пользователей.
|
ogre
Участник...
|
#61 Дата: 06 03 2010 03:46:17
Ответить
Flanker ну я бы не стал недооценивать производительность SQL серверов. Хотя неудачная модель данных, запросы типа "выбрать все, а потом разберемся", RBR могут снизить общую производительность в сотни раз. То что ты задумал - в принципе интересная задача. Но, боюсь, ты изобретаешь велосипед. Посмотри внимательней, как работают серверы типа MSSQL /Оракл, что они делают перед выполением запросов, как они распределяют память.
|
DimonS
Участник
|
#62 Дата: 06 03 2010 05:05:53
Ответить
Flanker легко уничтожить централизованную систему Ну да. От ядерного взрыва никто не застрахован. На остальные случаи есть бэкапы и рэйды.
Легко украсть, скопировать, заблокировать. Зависит от кривизны рук разработчика.
Трудно использовать большому количеству пользователей. Да ну??? А во всем мире-то и не знают!
|
DimonS
Участник
|
#63 Дата: 06 03 2010 05:07:31
Ответить
ogre Хотя неудачная модель данных, запросы типа "выбрать все, а потом разберемся"
Есть такое. Приходится и с такими программами сторонних разработчиков работать.
|
Flanker
Участник
|
#64 Дата: 07 03 2010 18:25:53
Ответить
DimonS Трудно использовать большому количеству пользователей. Да ну??? А во всем мире-то и не знают!
Стеб непонятен......
легко уничтожить централизованную систему Ну да. От ядерного взрыва никто не застрахован. На остальные случаи есть бэкапы и рэйды.
Именно бэкап и его вообще его возможность одно из уязвимых мест.
|
Jekil
Участник
|
#65 Дата: 07 03 2010 19:03:25
Ответить
Flanker можно кратко "идеологию OSP"? в двух-трёх абзацах, так, чтобы было понятно кому и зачем это надо.
|
Мама Стифлера
Участник...
|
#66 Дата: 07 03 2010 19:37:27
Ответить
полагаю что этот ацкий продукт http://www2.amit.ru/forum/index.php?action=vthread&topic=44974
|
Jekil
Участник
|
#67 Дата: 07 03 2010 20:29:56
Ответить
Мама Стифлера там тоже нихрена не понятно "кому и зачем" :)
|
Мама Стифлера
Участник...
|
#68 Дата: 07 03 2010 20:36:06
Ответить
Jekil Там про велик. Кажись индийский
|
Flanker
Участник
|
#69 Дата: 07 03 2010 23:04:47
Ответить
Jekil там тоже нихрена не понятно "кому и зачем" :)
Да хобби у меня такое......никому это не нужно.
Другое дело если получится.... пока у меня есть свободное время дело движется...уже на 2-3% законечана идеология....пустых мест намного больше....
|
Flanker
Участник
|
#70 Дата: 07 03 2010 23:12:57
Ответить
Jekil Ладно выложу....черновик прям как есть....на данном этапе:
Конечно мысль автора всегда обгоняет документацию....но названия абзацев лежащих в основе удалось задокументировать.
Основные принципы OSP проекта: 1. Серверы OSP обмениваются данными. 3 2. Сервер OSP имеет идентификатор 3 3. OSP по возможности использует распределенную систему 3 4. Утилиты – Набор специальные серверов для разработчиков 3 5. Серверы OSP могут быть реализованы на любой платформе 3 6. Человек рассматривается системой как OSP сервер 3 7. Каждый OSP сервер выполняет отдельную функцию 3 8. С человеком взаимодействует специальный OSP сервер 3 9. Два идентичных экземпляра сервера не мешают друг другу 3 10. Серверы доверяют всем пакетам, кроме серверов защиты/контроля прав 3 11. Серверы используют ресурсы компьютерных систем 3 12. OSP это описание интерфейсов серверов 3 13. Реализация сервера может быть коммерческой версией 3 14. Сервер имеет обработчики входящих пактов 3 15. Все обработчики входящих пакетов обрабатывают пакет по очереди 3 16. Серверы обмениваются пакетами 3 17. Потеря пакета не является проблемой 3 18. Ответ на пакет не требуется 3 19. Время передачи пакета не фиксировано 4 20. Размер пакета не ограничен 4 21. Способ передачи пакета любой 4 22. (???) Дубликат пакета обрабатывается заново или игнорируется 4 23. (???) Дубликат пакета с измененным содержимым может быть игнорирован, решение принимается получателем пакета 4 24. (???) Данные хранятся в виде исходных пакетов 4 25. (???) Минимальный размер пакета 4 байт 4 26. Пакет состоит из целого числа байт 4 27. Пакет это набор данных определенной структуры 4 28. Аппаратная реализация сервера по возможности проста (например: один «exe» файл и один файл конфигурации «ini») 4 29. Пакет имеет уникальный (для отправителя) идентификатор PID 4 30. Любой сервер имеет уникальный идентификатор 4 31. С человеком взаимодействует специальный OSP сервер. 4
|
ogre
Участник...
|
#71 Дата: 08 03 2010 03:57:14
Ответить
Это не cloud computing? Не? Похоже на цитаты из описания протоколов, служб и т.п. Но цель не просматривается. PS: 28. Аппаратная реализация сервера по возможности проста (например: один «exe» файл и один файл конфигурации «ini») 4 -тщательнее с терминологией :)
|
Добрый еврей
Участник
|
#72 Дата: 08 03 2010 05:50:46 ° Поправил: Добрый еврей
Ответить
Четтиптово от redhat
оригинал подареный редатом apache коммунити но там только "мессаджинг протокол референс имплементэйшн".
Недавно ето поставили на токийской бирже, после позопрошлогоднего 160 млн. падения.
32...????? 33...PROFFIT
|
fluf
Участник...
|
#73 Дата: 08 03 2010 09:07:42
Ответить
феерической херни пост [x]
Такое ощущение, что автор рухнул с конопляного дерева и решил написать гибрид гугла и скайпа на дельфах. Не подозревая, что все уже изобретено до нас.
зы: писать на дельфях, да еще с претензией на какую то кроссплатформенность - редкостное убожество.
|
Flanker
Участник
|
#74 Дата: 08 03 2010 09:11:31
Ответить
ogre Да я видел это косяк....там вообще еще все сыро..... (апаратные exe-ники я еще не придумал :-))) )
Добрый еврей Red Hat Enterprise MRG supports the full spectrum of distributed tasks, including: * High-speed, reliable, or large-file messaging * Parallel and cycle-harvesting scheduling * High Performance Computing (HPC) and High Throughput Computing (HTC) * Distributed workload management Спасибо за ссылочку....посмотрим что это такое.
|
Flanker
Участник
|
#75 Дата: 08 03 2010 09:50:16
Ответить
Добрый еврей Я в шоке от производительности буржуев.....а заправляет этим еще какой-то китаец...который набубнил на видео основные фишки MRG ....множественно употребляя слова provide, reability, perfomance.....и все круто типа....тока нихуа...непонятно.
....им там что нечем занятся толпами.....фигачут документацию мегатоннами. Еле удалось понять что это такое вообще.
Походу они предлагают комплексное решение на ваш парк дохлой техники ставятся их ось и супер-пупер MRG.....поддержка Windows ....там по моему минимальна.
Это конечно все круто,....но я даже рад что преследую во многом другие цели.За буржуями нам пока не угнаться
|
fluf
Участник...
|
#76 Дата: 08 03 2010 10:19:44
Ответить
Основные принципы OSP проекта: 1. Серверы OSP обмениваются данными. 3 --------------------------------- Дружище, все сервера (точки обмена данных) в любой распределенной системе обмениваются данными.
2. Сервер OSP имеет идентификатор 3 ----------------------- У любого сервера будет идентификатор (от идентификатора среды - мак, ай-пи, до прикладного идентификатора)
5. Серверы OSP могут быть реализованы на любой платформе 3 ---------------- Но исходно я буду писать на Дельфях. Задекларировать то изначально любую ахинею можно.
6. Человек рассматривается системой как OSP сервер 3 -------------------- Сервер, это система принимающая запросы и выдающая результат. Т.е. я так понимаю твой скай-нет будет посылать лучи поноса напрямую в мозг человека заставляю его расчитываль эллиптические кривые третьего порядка.
7. Каждый OSP сервер выполняет отдельную функцию 3 ---------------------- Если одна функция на одном сервере - то в чем распределенность, отказоустойчяивость и бла-бла-бла?
8. С человеком взаимодействует специальный OSP сервер 3 ------------------------- Это понятно. К нему по ЛПТ порту будет и подключен излучатель мозговых слизней.
10. Серверы доверяют всем пакетам, кроме серверов защиты/контроля прав 3 ------------------- никуя не понял, но чую это секурно.
11. Серверы используют ресурсы компьютерных систем 3 ---------------------------------- эээээ.. а есть еще варианты?
13. Реализация сервера может быть коммерческой версией 3 ------------------------------- sweet dream
14. Сервер имеет обработчики входящих пактов 3 ------------------------------------ а исходящие я так понимаю просто генерируются через rand() хуже все равно уже не будет.
15. Все обработчики входящих пакетов обрабатывают пакет по очереди 3 --------------------- вот она многозадачность и распаралеленность во всей красе.
16. Серверы обмениваются пакетами 3 ------------- удачи.
17. Потеря пакета не является проблемой 3 -------------- а потеря 100% пакетов?
18. Ответ на пакет не требуется 3 ------------------------- цэ ж udp
19. Время передачи пакета не фиксировано 4 ------------------------ клево. я думаю конопляное дерево подсказало как обеспечить сборку входящих покетов в случае если последий пакет умудрился обогнать предыдущий на пути к получателю.
20. Размер пакета не ограничен 4 ---------------- Меня всегда смущало что в ping -l можно было написать только жалкие килобайты. Всегда хотелось куйнуть так кунуть. Чтоб заддосить любого обидчика.
21. Способ передачи пакета любой 4 -------------- голуби, тоукен ринг, вспышки на солнце?
25. (???) Минимальный размер пакета 4 байт 4 -------------- а почему не восемь?
26. Пакет состоит из целого числа байт 4 ------------ угу.
29. Пакет имеет уникальный (для отправителя) идентификатор PID 4 30. Любой сервер имеет уникальный идентификатор 4 --------------- повторяетесь с пунктиками. фантазия истощилась?
31. С человеком взаимодействует специальный OSP сервер. 4 ---- было.
|
fluf
Участник...
|
#77 Дата: 08 03 2010 10:37:59
Ответить
Кстати вот тут товарищь тем же занимается.
|
k9
Участник...
|
#78 Дата: 08 03 2010 10:46:46 ° Поправил: k9
Ответить
fluf Зачем же так сознание засорять? Предупреждать надо :) Во избежание острого приступа идиосинкразии закрыл закладку брозверя с тем бредом на второй секунде её существования.
|
Flanker
Участник
|
#79 Дата: 08 03 2010 11:25:32
Ответить
Полный бред господина fluf-а я вырезал. Но кое что прокомментирую.
5. Серверы OSP могут быть реализованы на любой платформе 3 Но исходно я буду писать на Дельфях. Задекларировать то изначально любую ахинею можно. А какая разница?..... может это будет DELPHI & PHP & 1C & С++..... еще не ясно. Ведь програмки будут небольшие.
6. Человек рассматривается системой как OSP сервер 3 Сервер, это система принимающая запросы и выдающая результат. Т.е. я так понимаю твой скай-нет будет посылать лучи поноса напрямую в мозг человека заставляю его расчитываль эллиптические кривые третьего порядка. Раз уж в твоей голове родился такой бред. Здесь указан лишь намек на то что протокол общения с человеком будет стандартизирован.....что-то вроде Terminal Server (для узких каналов)
7. Каждый OSP сервер выполняет отдельную функцию 3 Если одна функция на одном сервере - то в чем распределенность, отказоустойчяивость и бла-бла-бла? Распределенность - функций. Отказоустойчивость - Если любой модуль откажет...система вероятнее воспримет просто как отсутствие модуля либо связи с ним, а не как обращение к методу объекта, память под который уже освобождена.
11. Серверы используют ресурсы компьютерных систем 3 эээээ.. а есть еще варианты? Согласен бредятина.....но поверь варианты есть. Например - не используют :-)
13. Реализация сервера может быть коммерческой версией sweet dream Да не это unexpected feature
14. Сервер имеет обработчики входящих пактов 3 а исходящие я так понимаю просто генерируются через rand() хуже все равно уже не будет. Не поверишь.... rand() и timer()......ну и ты забыл про LPT порт от мозга Юзера :-)
15. Все обработчики входящих пакетов обрабатывают пакет по очереди 3 вот она многозадачность и распаралеленность во всей красе. все сервера делают это одновременно.. - в этом соль. А вообще-то это еще открытый вопрос.
Потеря пакета не является проблемой 3 а потеря 100% пакетов? Кэшно....хоть 110%
19. Время передачи пакета не фиксировано 4 клево. я думаю конопляное дерево подсказало как обеспечить сборку входящих покетов в случае если последий пакет умудрился обогнать предыдущий на пути к получателю. А накуя вообще называть пакет последним или первым....это же не TCP/IP....здесь размер кадра до 2GB.....закуячил один пакет и мама не горюй.
25. (???) Минимальный размер пакета 4 байт 4 а почему не восемь?
3 байта метка (4F 53 50) + 1 байт разрядность в байтах ( 04 ) 04 - означает 4 байтный тобишь 32 разрядный пакет. (то есть содержит блоки до 2 гигов)
29. Пакет имеет уникальный (для отправителя) идентификатор PID 4 30. Любой сервер имеет уникальный идентификатор 4 повторяетесь с пунктиками. фантазия истощилась? SID - сервер ID, для указания адресата PID - пакет ID, идентифайер для, идентификации ответа на тот самый пакет
|
Добрый еврей
Участник
|
#80 Дата: 08 03 2010 17:22:20
Ответить
1С
|
Flanker
Участник
|
#81 Дата: 09 03 2010 09:39:05
Ответить
Добрый еврей Да 1С и нет в этом ничего зазорного. Пол страны сидит и очень довольны.
Мне не нравится только очень большие тормоза....когда на 4-ядерном компьютере....максимально оптимизированный импорт справочника номенклатуры 5000 элементов занимает более минуты.
Узкое место - время доступа к отдельному элементу, выборка найтипокоду.
Даже на Visual Basic или PHP эта операция займет доли секунды.
|
Нахухоль
Участник
|
#82 Дата: 09 03 2010 16:34:01
Ответить
Flanker
Что мешает попробовать в качестве SQL-сервера Firebird ? www.ibase.ru
|
ogre
Участник...
|
#83 Дата: 09 03 2010 16:57:57 ° Поправил: ogre
Ответить
Flanker
Узкое место - время доступа к отдельному элементу, выборка найтипокоду. Даже на Visual Basic или PHP эта операция займет доли секунды. Откуда такая уверенность? Есть реализация 1С на VB или PHP?
По-моему, ты просто понятия не имеешь, что происходит при импорте данных в любую базу данных. Узкое место - не поиск. А как ни странно - обновление (что, собственно и происходит при импорте справочника). Связано это с необходимостью удаления и изменения индексированных полей, что влечет необходимость перестроения индекса. Кроме того, при импорте наверняка происходит огромное количество проверок на целостность и т.п..
А просто "всосать" 5000 строк - я тебе и без БД за доли секунды в датаесет закину и на сотом пне.
|
Полосатый
Участник
|
#84 Дата: 09 03 2010 18:28:46
Ответить
k9 Во избежание острого приступа идиосинкразии закрыл закладку брозверя с тем бредом на второй секунде её существования.
Зря :) Доставляет почище чего-другого.
Например, "Гамма излучение от взрыва сдувает электроны десятков километров воздуха под точкой ядерного взрыва вниз к поверхности земли, образуя высотную разность потенциалов в миллион вольт на метр. Для этого случая компьютер андроида Айзек имеет рабочее напряжение микросхем компьютера примерно в 2000 вольт + защитный электростатический экран компьютера с положительным электростатическим полем для компенсации отрицательного электростатического поля от ядерного взрыва."
*me* задумался о микросхемах с рабочим напряжением в 2 киловольта. У меня серьезные подозрения что подобная "микросхема" должна быть размером с египетские пирамиды... Ну, с грузовик, не меньше.
Впрочем, автор там честно признается, что "Готовлю судебный иск против моего врага - эксплуататора и угнетателя детей - Министерства Образования за то, что в 9-ом и 10-ом классе школы это преступное министерство эксплуатировало и угнетало меня по 12 часов (включая домашнее задание) в сутки под предлогом необходимости усиленного изучения литературы."
|
Flanker
Участник
|
#85 Дата: 10 03 2010 10:03:26
Ответить
ogre Не нужно делать выводы на основе предположений.
Действительно написал я неудачно.....ведь любая база данных как раз упорядочивает данные на жестком диске для более быстрого и удобного доступа к ним.
А вообще речь про БД не шла..... хотел сказать несколько о другом. Конечно я не проводил тайм менеджмент выполнения той или иной функции 1С по работе со справочниками, просто интуитивно сложилось такое впечатление что чем чаще использую функцию Спр.найтипокоду тем дольше работает.... Хотя очевидно основной тормоз Спр.Записать.
Но синхронизация(вначале я употребил слово импорт) справочников невозможна без сопоставления кодов.
Я употребил термин время доступа к элементу справочника подразумевая полное время на: поиск, чтение и запись. - это действительно оч. медленно.
Возможно именно по этому программисты из Штрих-М отказались в своих программах от использования Спровочника - для хранения Номенклатуры....а делают это через Регистры (на мой взгляд через жопу).
|
ogre
Участник...
|
#86 Дата: 10 03 2010 11:22:57
Ответить
любая база данных как раз упорядочивает данные на жестком диске для более быстрого и удобного доступа к ним. вообще-то она индексирует данные для ускорения доступа. А упорядочивает или нет - зависит от типа индекса.
|
Flanker
Участник
|
#87 Дата: 10 03 2010 12:02:40
Ответить
ogre Ты оперируешь терминами СУБД, может тебе так удобно и здесь я с тобой согласен.
Но в общеупотребительном смысле:
Хранение байтов информации например в файловой системе NTFS в отличие от БД MySQL как раз и заключаются в упорядочивании информации на жестком диске.
|
Jekil
Участник
|
#88 Дата: 10 03 2010 12:20:26
Ответить
Flanker если бы я был преподавателем, я бы указал на критические пробелы в знании "матчасти" - специальной терминологии, предметной области и существующих решений, теории БД и сетей и в особенности технологий программирования. как следствие: 1) иллюзия наличия некой проблемы в некой предметной области 2) невозможность донести суть проблемы, решения и самой предметной области до оппонентов, так как вместо конкретной терминологии автор пытается оперировать некими "общеупотребительными смыслами".
...но я ж не преподаватель ;)
поэтому как практик и праздный читатель форума скажу - "автор, нифига непонятно - что, для кого, и главное - зачем, ты делаешь!" :)
|
Flanker
Участник
|
#89 Дата: 10 03 2010 14:47:09
Ответить
Jekil 1) иллюзия наличия некой проблемы в некой предметной области В чем состоит иллюзия? К чему вообще этот пост? Цитируйте, вас не понять.
2) невозможность донести суть проблемы, решения и самой предметной области до оппонентов О какой проблеме идет речь, выражйтесь конкретно.
некими "общеупотребительными смыслами". Именно на этом языке общается 100% людей, а применять специфическую терминологию там где это не нужно я не люблю. Я и без того уверен что на этом форуме полно людей прекрасно разбирающихся в СУБД, но мне пока моих знаний хватает.
"автор, нифига непонятно - что, для кого, и главное - зачем, ты делаешь!" :) Зачем: - хобби Для кого: - для себя, своих нужд возможно пригодится кому-то еще.
|
Jekil
Участник
|
#90 Дата: 10 03 2010 17:16:46
Ответить
что? :) (это, собственно и будет расшифровкой пп. 1 и 2)
|
Flanker
Участник
|
#91 Дата: 10 03 2010 17:32:30
Ответить
Jekil Я боюсь делать предположение....но все же выскажусь:
Такое чувство что вы там про себя что-то такое умное придумали....все срастили в голове...только не хотите опускаться до уровня тов. Flanker чтобы человеческим языком ответить на заданные вопросы или задать свои.
|
DrPooh
Участник
|
#92 Дата: 10 03 2010 19:02:55
Ответить
Jekil Можно мне, как преподавателю попробовать?
Итак, Flanker, лично мне не понятны два вопроса: 1. Какова цель этой работы? Какую проблему вы пытаетесь решить с помощью проекта OSP? 2. Опишите общий принцип OSP. Какие задачи будут решаться для достижения поставленной цели?
Те "основные принципы", что вы постили раньше, есть ни что иное как детали реализации. Основных принципов обычно насчитывается 3-5 и лично мне их пока не видно. Если эти два вопроса будут освещены достаточно полно, возможно вы найдете не только помощь здесь в реализации, но поддержку и единомышленников.
|
Flanker
Участник
|
#93 Дата: 10 03 2010 19:13:21
Ответить
DrPooh Напишу кратко:
Цель: Создание идеологии OSP и примера ПО основанного на ней. В качестве ПО будет небольшая ERP система для торговой компании.
Общий принцип: Функции ПО разделены на отдельные модули. Разныче части ПО будут обмениваться пакетами/файлами. Несмотря на очевидное замедление, связанное с введением принудительного протокола общения между частями ПО ожидается извлечь плюсы из гибкости и масштабируемости.
|
Flanker
Участник
|
#94 Дата: 10 03 2010 19:15:37
Ответить
DrPooh Слово ожидается употреблено, потому что проект находится на стадии идеи и эксперимента.
Отсюда кстати непонятен стеб некоторых людей.....автор не только мечтает...но и еще пытается осуществить свои дурацкие мечты либо отказаться от них получив ценный опыт либо просто приятно проведя время.
|
DrPooh
Участник
|
#95 Дата: 10 03 2010 20:04:36
Ответить
Flanker При всей своей простоте, такие вещи как Цели и Задачи являются очень мощными сущностями. В результате, когда они определены, обсуждение может продвигаться более конструктивно, нежеле простое словоблудие. Какое принципиальное преимущество дает идеология OSP перед другими идеологиями, что ее стоит реализовать? В основе ERP систем лежит СУБД. У тебя собственная СУБД или другая коммерческая/бесплатная? Потомучто, если СУБД "чужая", те задачи, что ты перечислил для достижения поставленой цели, с легкостью реализуются даже стандартными средствами MS SQL, например.
|
fluf
Участник...
|
#96 Дата: 10 03 2010 21:50:56
Ответить
DrPooh ;-)
Все просто. Товарищъ Flanker, на данном этапе изобретения концептуального нового сверх-автомобиля, погряз в маленькой, но неразрешимой проблеме. А именно - какого цвета должны быть нипельки на колесах "нового" чудо-изобретения.
Как только этот вопрос будет преодолен. Держитесь други. Проект безусловно попрет. (Ну на цвете чехольчихов мож еще буксанет)
|
Flanker
Участник
|
#97 Дата: 11 03 2010 07:47:06
Ответить
DrPooh В основе ERP систем лежит СУБД.
Таких ограничений нет, я не планирую использовать СУБД. Конечно ПО будет хранить данные, но с этой задачей каждый модуль будет справлятся самостоятельно.
Использование СУБД будет только на последних этапах при построении модуля отчетов и тех модулей, которые будут активно работать с реляционными данными. Возможно это будет MySQL.
|