关于:动态分配文件缓冲区

在周二,2008年9月9日14:59:19 -0700,Castironpi写道:
[剪长描述,不可用的用例]
您已经为问题创建了一个解决方案,该问题(可能)仅影响一个
少数人,至少从您的用例来看.谁有
一个4GB XML文件,他们抽了多少裂缝?
Castironpi,您 * *使用此概念验证模块是什么?别
麻烦告诉我们您的想法 *我们 *应该使用它.告诉我们你什么
使用它,或至少其他人正在使用它.如果是
只是您认为会很酷的模块,我不喜欢您的机会
人们关心.不乏无用的"酷"软件
对于任何东西,与眼神不止的是,没有人会使用您的模块
只是因为他们喜欢算法.
如果您没有该软件的现有应用程序,请说明
它的作用(不是),并给出一些表现的想法("是alpha
并用python编写,真的很慢,但是我会在C中重写它
期望它可以在10GB文件中获得十亿个随机访问
毫秒或其他).您可能很幸运,有人说
"嘿,这只是我解决问题所需的工具!"
- -
史蒂文

# 回答1


在9月9日,5:58*PM,Steven d'Aprano cybersource.com.auwrote:
[剪长描述,不可用的用例]
史蒂文,
我从"搁置"和"腌制"模块的存在中判断
关系数据库软件包,我要解决的问题不是
稀有的.可能是马路对面的百万富翁投资者,
在大厅里冒险资本家,或者拥有巨大的CD目录的家伙.
老实说,什么都没有.我只是写了.我的用户社区和
客户群很小.最初,我想存储可变 -
文件中的长度字符串,架子和数据库过大.
我为它的美丽而创建了它,很抱歉令人失望.
不幸的是,没有人会关心我所拥有的大多数用途
因为它直到我有一份工作.我正在用笔记本电脑四处走动,
记住我的数据库教授何时继续丢球
Varchars.如果您想要声音字节,请想:"想象编程
没有"新"和" malloc"."
我写了一个绳索实现,只是为了测试驱动器.它超过了
本机不变的弦乐类型为2兆.它使用"结构"而不是
" CTYPES",因此可以想象的数字可以下降.我打算
将其留在纯净的python中,所以那里.
一如既往的愉快聊天.
# 回答2


史蒂文·达·阿普拉诺(Steven D'Aprano)写道:
从可以从记录过程或数据库中获取4GB XML文件
将其输出作为XML并不少见.他们通常是
以记录为导向,旨在作为流处理.并给予
正确的工具,这样做并不比对4GB做同样的工作要困难
文本文件.
# 回答3


2008年9月10日星期三09:26:20 +0200,弗雷德里克·伦德(Fredrik Lundh)写道:
从可以从记录过程或数据库中获取4GB XML文件
渲染他们的o XML的UTPUT并不少见.他们通常是
以记录为导向,旨在作为流处理.并给予
正确的工具,这样做并不比对4GB做同样的工作要困难
文本文件.

公平,这是一个很好的观点.
但是您会期望随机访问4GB XML文件吗?如果我理解
Castironpi正在尝试的是,他的主要用例是给人们的
完全想要那个.
- -
史蒂文

# 回答4


在9月10日,5:24*上午,史蒂文·d'Aprano
公平,这是一个很好的观点.
但是您会期望随机访问4GB XML文件吗?如果我理解
Castironpi正在尝试的是,他的主要用例是给人们的
完全想要那个.
- -
史蒂文
史蒂文,
您是否声称顺序存储足以适合小
大量数据和关系DB.S的数量和关系DB.
可能只有边缘例外,在这种情况下
在大多数情况下,"杂货/自由"没有用,也永远不会
赢得远离更成熟的竞争的客户.
无论如何,这是解决存储问题的优雅解决方案
可变长度字符串,几乎没有任何实际价值.完美
研究生院.
# 回答5


在2008年9月10日星期三11:59:35 -0700,Aaron \" Castironpi \" Brady写道:足够公平,这是一个很好的观点.您是否希望随机访问4GB XML文件?如果我已经察觉到Castironpi想要的是什么,那么他的主要用例就是Forpeople想要的.-史蒂文

史蒂文,
您是否声称顺序存储足以容纳少量
大量数据和关系DB.
我不再 *要求 *任何东西,我 *问 *是否随机访问
4GB XML文件是可信或有用的东西.是我的
了解XML一次特别不适合随机访问一次
数据量太大,无法适应RAM.
我对弗雷德里克(Fredrik)对此说的话感兴趣,因为他是作者
元素.
- -
史蒂文

# 回答6


史蒂文·达·阿普拉诺(Steven D'Aprano)写道:
XML文件不包含任何索引信息,因此随机访问
对于大XML文件,非常效率非常低.您可以构建(或预先计算)
当然,索引信息并存储在单独的文件中,但这就是
在一般情况下几乎没有用的东西.
正如我之前所说
在实践中使用的是存储大量的唱片风格数据.
旨在通过顺序流程消费的数据(您可以
如今,在顺序处理中做很多事情;对于感兴趣的人
这,挖掘有关"数据流处理"的一些评论论文
是浪费一段时间的好方法).
文档式XML通常适合现代机器上的内存;
大于大的结构通常分为不同的部分(例如
使用Xinclude)并存储在容器文件中.
随机 *修改 *对任意XML文件无法完成,只要长时间
当您存储文件时 n标准文件系统.如果您发明您的
自己的格式,它不再是XML文件.
# 回答7


在9月11日,10:34,Fredrik Lundh 我可以想象,对大型的持续形式的操纵
图形结构可能是另一种用例,尽管有效
导航这种结构,这是您需要开始的
应用各种图形算法,需要某种索引.
当然,我们正在陷入数据库领域.
保罗
# 回答8


在9月11日,2:40*上午,史蒂文·d'Aprano
我不再 *要求 *任何东西,我 *问 *是否随机访问
4GB XML文件是可信或有用的东西.是我的
了解XML一次特别不适合随机访问一次
数据量太大,无法适应RAM.
我对弗雷德里克(Fredrik)对此说的话感兴趣,因为他是作者
元素.
- -
史蒂文
xml是我想的示例的错误词(按照
已经在另一个线程中指出).根据定义,XML是
顺序.用例与通用元素层次结构有关;
想想4GB的分层数据.
# 回答9


在9月11日,5:35*AM,Paul Boddie

我可以想象,对大型的持续形式的操纵
图形结构可能是另一种用例,尽管有效
导航这种结构,这是您需要开始的
应用各种图形算法,需要某种索引.
当然,我们正在陷入数据库领域.
保罗
熟人表明碎裂将是有用的
也可以提供与内存管理一起提供的服务
需要索引.
我鼓励在裸露的异种/自由模块和
建立了数据库领域,我非常意识到这一点.
数据库已经支持并发和持久性,但不要
告诉我,您将使用数据库进行IPC.而且不要告诉我你从来没有
希望您在桌子上有记录的参考,以便您可以
仅通过在右侧更改一个记忆单词来进行更新
地方.有时数据库是过度的,您想要的只是动态的
分配.

# 回答10


在9月11日,19:31," Aaron \" Castironpi \" Brady"
写道:
我认为您是指有效地访问大量数据
感觉到,如果您想要的所有数据恰好在同一页面
或细分市场,然后检索它比必须
寻找所有不同的作品.所以碎片部将
是他们在关系数据库中所谓的聚类的上下文:http://www.postgresql.org/docs/8.3/s...l-cluster.html
我在关系数据库世界之外看到了类似的现象,
值得注意的是,大卢克索引不适合他们的记忆
整体.
当然,数据库被广泛用于可扩展系统中以保持
中央状态,这就是为什么 付出了很多努力
仅扩展数据库的安装,还将
应该保存数据库系统的缓存
Web应用程序过多的负载.
我认为挑战是减少抽象操作(对于
例如,想在特定记录中更新特定列)
达到其可测量的效果(此记忆/磁盘的这个词会随着一个
结果).对于人类来说,这很容易,有合理的知识,
假设一个关系数据库系统可以预测此类事情,但要
实际上,通过某种通用崩溃了许多层
优化过程要困难得多.
保罗
# 回答11


在2008年9月11日的星期四10:20:41 -0700,Aaron \" Castironpi \" Brady写道:
我很确定你错了. XML可用于序列化,但
并不意味着它只是顺序数据. XML适用于层次结构
数据也是如此.引用维基百科:
"只要仅需要良好的态度,XML就是一个通用框架
用于存储任何数量的文本或任何结构的数据
表示为树.唯一必不可少的句法要求是
该文档完全具有一个根元素(或者称为
文档元素)." http://en.wikipedia.org/wiki/xml
- -
史蒂文
# 回答12


在9月11日,10:37*PM,Steven D'Aprano
我很确定你错了. XML可用于序列化,但
并不意味着它只是顺序数据. XML适用于层次结构
数据也是如此.引用维基百科:
"只要仅需要良好的态度,XML就是一个通用框架
用于存储任何数量的文本或任何结构的数据
表示为树.唯一必不可少的句法要求是
该文档完全具有一个根元素(或者称为
文档元素)." http://en.wikipedia.org/wiki/xml
- -
史蒂文
恐怕这是我再次工作的单词.我的意思是,
您无法正确解释
XML文本不知道有关之前所有事实的某些事实
它.与记录大小的固定长度文件的情况进行比较
说20,您知道偏移范围中字符的含义
20-40、80-100、500020-500040,等.
为了阐明有关用例的要点,因为数据将
分配和动态位置,您可以阅读
前几个单词,然后不需要任何东西,直到说1kb
标记. (除非您以某种方式将偏移量存储到XML字符串中为
字符串中的一个值,需要编写它,离开空间
为此值,然后无论如何都会随机访问.)
可以在动态管理的缓冲区中是空白---说未使用/免费
从偏移200到220的字节,但是每个字节都跟随另一个字节
XML文件也遵循文件的含义.这是什么
更清晰?
亚伦
# 回答13


在THU,2008年9月11日22:40:01 -0700,丹尼斯·李·比伯(Dennis Lee Bieber)写道:
数据内容的格式和
该数据的处理...不管内容如何,​​一个
本质上必须顺序处理XML /文件 /文件,然后翻译
进入允许访问上述数据的内存模型.到达
MTH元素的第n个子元素需要阅读所有1..m-1
元素,然后是m中的所有1..n-1子元素.修改任何元素
需要重写整个文件.
这就是为什么我以前说XML不适合随机
使用权.
我认为我们开始被吸引成钝和不透明的涡流
沟通.我们同意XML可以存储层次数据,并且
必须依次阅读和书写,无论是什么优点
Castironpi的软件,他的原始使用案例随机访问4GB
XML文件不可行.是的?
- -
史蒂文
# 回答14


在9月12日,1:30*上午,史蒂文·d'Aprano
这就是为什么我以前说XML不适合随机
使用权.
我认为我们开始被吸引成钝和不透明的涡流
沟通.我们同意XML可以存储层次数据,并且
必须依次阅读和书写,无论是什么优点
Castironpi的软件,他的原始使用案例随机访问4GB
XML文件不可行.是的?
- -
史蒂文
您的意思是"不可行","没有人使用4GB的XML"或"否
一个人曾经使用4GB或分层数据周期"?
# 回答15


9月12日,08:30,史蒂文·迪阿普拉诺(Steven d'Aprano)
也许不吧.考虑其他存储格式(例如HDF5)可能会考虑
适当:http://hdf.ncsa.uiuc.edu/hdf5/whatishdf5.html
当然,有可用于Python的HDF5工具.
我不知道.我设法跟上讨论.
同样,XML特别适用于随机访问
序列化形式,尽管人们尽了最大的努力处理
各种非常规的方式,但这并不意味着随机访问
到达包含层次数据的4GB文件,所以我
假设这取决于他是否习惯了使用的想法
香草XML与否.总是值得探索可用的
在进行具有挑战性的项目之前,除非一个
想作为学习经历来追求练习,因此我
建议调查HDF5是否至少无法解决一些
在本讨论中指出的问题或用例.
保罗
# 回答16


在9月12日,4:34*AM,Paul Boddie

也许不吧.
不,这不对.元素树是,如果我只是说
起初...
列表中的几周内出现了Pytables.
"当创建文件时,对象树中的元数据已更新
在存储器中,实际数据保存到磁盘时.当您关闭
文件不再可用对象树.但是,当你reo 笔
该文件将从
磁盘上的元数据...."
这与我的想法不同,但是肢体取决于
关于"内存中重建"步骤的慢速. (来自http://www.pytables.org/docs/manual/ch01.html#id2506782)​​.这
反例将需要随机访问多个数据
文件,并非一次适合内存,而是该文件的成熟度
包裹可能超过这一点.重建将形成瓶颈
反正.
我不知道.我设法跟上讨论.
我可以拒绝那个出价并谈论一个4MB文件
过于昂贵,因此需要随机访问,从而
需要XML的替代方案.
否.能够滚动您的数据总是很高兴的,但是
能够滚动的数据结构 - 不那么普遍.
(这是数据结构难以设计的原因的一部分.)
并发的潜力绝对是RAW Alloc/
自由管理,以及我正在开始计划的要求
直接用于. HDF5有一个多线程版本
不受支持的交流是不支持的.
"此版本序列化适用于多线程的API
申请,但没有提供任何级别的并发."
来自:http://www.hdfgroup.uiuc.edu/papers/features/mthdf/
(总是很感激能找到一个产品的陈述
不做.)
项目网站上有一个有关该问题的更新声明:http://code.google.com/p/pymmapstruc...mmapsstruct.txt
我没有声称SQL中的抽象层的数字,
包括弦结构和解析,是瓶颈或
限制因素,尽管它是直观的.直到我得到
那些,也许我应该拒绝那个指控.
与所有其他软件包的复杂性相比(Zope,
MEMCACHED,HDF5/PYTABLES),Alloc和Free几乎看起来像它们
应该成为内置缓冲区类型子类的方法.哈!
(鸭子.)与依恋的感觉相比
python虽然,所以也许它们可以属于CTYPES.
亚伦

标签: python

添加新评论