|
20.05.2010, 17:15 | #1 |
Участник
|
Табличный процессор
Коллеги, кто-нибудь сталкивался с вопросом как устроен изнутри табличный процессор, как у него получается мгновенно вычислять достаточно большой объем данных? Может, есть ссылки, книги etc?
|
|
20.05.2010, 17:39 | #2 |
Moderator
|
Уж не собираетесь ли Вы... Excel того... подвинуть плечом?!
А если серьезно, то в стародавние, почти былинные времена был у Борланда такой замечательный продукт, как Turbo Pascal. Так вот, в версии то ли в 6.0, то ли в 7.0 (а может и в обеих) были исходники демки табличного процессора. Напомню, что у этой фирмы был (есть?) свой собственный табличный процессор Quattro Pro. Так что они знавали толк в этом деле. |
|
|
За это сообщение автора поблагодарили: Lemming (5). |
20.05.2010, 21:46 | #3 |
Участник
|
вопрос не просто в сложении чисел как таковом, а в их организации из реляционной модели в модель процессора, оперирования с ней и обратной конвертации.
ну те то что бы подвинуть, хотя бы прикинуть... что почем |
|
20.05.2010, 18:42 | #4 |
Microsoft Dynamics
|
О чем идет речь? Какой табличный процессор? Какие объемы данных считаются достаточно большими?
Современные процессоры для настольных ПК могут выполнять десятки миллиардов операций в секунду http://www.intel.com/support/ru/proc.../cs-023143.htm. Сложить один миллиард чисел с другим миллиардом чисел может занять по времени меньше секунды. |
|
21.05.2010, 08:59 | #5 |
Microsoft Dynamics
|
Если вы говорите о табличном процессоре, как понимаю, вы говорите об программах подбных Microsoft Excel? Если так, то причем здесь реляционная модель?
Если вспомнить устройство уже упомянутой программы входящей в комплект Turbo Pascal, то там в качестве внутренней структуры хранения данных в первых версиях использовался массив X++: const FXMax: Char = 'G'; { Maximum number of columns in spread sheet } FYMax = 21; { Maximum number of lines in spread sheet } type Anystring = string[70]; SheetIndex = 'A'..'G'; Attributes = (Constant,Formula,Txt,OverWritten,Locked,Calculated); { The spreadsheet is made out of Cells every Cell is defined as } { the following record:} CellRec = record CellStatus: set of Attributes; { Status of cell (see type def.) } Contents: String[70]; { Contains a formula or some text } Value: Real; { Last calculated cell value } DEC,FW: 0..20; { Decimals and Cell Whith } end; [B] Cells = array[SheetIndex,1..FYMax] of CellRec;[/B] ... |
|
21.05.2010, 09:34 | #6 |
Участник
|
Используем решение, в котором поженены ActiveX Excel и сама Axapta, часть вычислений делает ActiveX Excel и потом значение считываются и записываются в Axapta, порой это не так быстро как хотелось бы и достаточно сложно в настройках.
|
|
21.05.2010, 10:00 | #7 |
Участник
|
Это решение случайно не Axcision ? (Если так, то я бы на вашем месте подумал над установкой какой-нибудь более традиционной аналитической системы...)
|
|
21.05.2010, 10:55 | #8 |
Moderator
|
|
|
21.05.2010, 12:16 | #9 |
Участник
|
нет это не Axcision, называть не буду дыба не заниматься рекламой/антирекламой
Порядок примерно такой 150 строк*30 столбцов 4500 ячеек. Десятую часть из них вычисляет сам Excel т.е. около 450, считывание занимает в среднем секунд 5-10, т.е. гораздо дольше чем сам Excel считает и если нужно ввести 900 значений *5-10 секунд то полная обработка занимает около о 1часа - до 2,5 часов |
|
21.05.2010, 12:26 | #10 |
Moderator
|
Цитата:
Сообщение от Serg
Порядок примерно такой 150 строк*30 столбцов 4500 ячеек. Десятую часть из них вычисляет сам Excel т.е. около 450, считывание занимает в среднем секунд 5-10, т.е. гораздо дольше чем сам Excel считает и если нужно ввести 900 значений *5-10 секунд то полная обработка занимает около о 1часа - до 2,5 часов
что вы чуть выше называете "ActiveX Excel"? OWC Spreadsheet или всё-таки большой "Microsoft Excel"? что такое "считывание"? Аксапта читает из "Excel" или пользователь считывает с бумажки? спрашиваю про пользователя, потому что тогда становится логичным "ввести (!) 900 значений", умноженное на "время считывания (!)"... |
|
|
Похожие темы | ||||
Тема | Ответов | |||
aEremenko: Как обнаружить какой пользователь загружает процессор AOS? | 4 | |||
Табличный Mapping - список используеиых таблиц | 6 |
|