小编Nic*_*ick的帖子

对于80 + GB XML,Python sax到lxml

您如何使用sax读取XML文件并将其转换为lxml etree.iterparse元素?

为了提供问题的概述,我构建了一个XML摄取工具,使用lxml作为XML源,其大小范围为25 - 500MB,需要每日摄取一次,但需要执行一次摄取一个60 - 100GB的文件.

我选择使用lxml基于详细说明节点不会超过4-8 GB的规格,我认为这样可以将节点读入内存并在完成后清除.

如果代码如下,请概述

elements = etree.iterparse(
    self._source, events = ('end',)
)
for event, element in elements:
    finished = True
    if element.tag == 'Artist-Types':
        self.artist_types(element)

def artist_types(self, element):
    """
    Imports artist types

    :param list element: etree.Element
    :returns boolean:
    """
    self._log.info("Importing Artist types")
    count = 0
    for child in element:
        failed = False
        fields = self._getElementFields(child, (
            ('id', 'Id'),
            ('type_code', 'Type-Code'),
            ('created_date', 'Created-Date')
        ))
        if self._type is IMPORT_INC and has_artist_type(fields['id']):
            if update_artist_type(fields['id'], fields['type_code']):
                count = …
Run Code Online (Sandbox Code Playgroud)

python lxml sax

11
推荐指数
1
解决办法
5024
查看次数

epoll,kqueue,/ dev/poll .... PHP的扩展

是否存在PHP扩展(稳定性无关紧要),允许直接epoll,kqueue,/ dev/poll轮询功能而无需通过libevent或libev扩展?

php events epoll

9
推荐指数
1
解决办法
2314
查看次数

全局数组的PHP对象数组不是线性扩展吗?

使用对象内数组作为属性而不是使用全局php数组变量时存在一个主要的性能问题,为什么?

为了对此问题进行基准测试,我创建了以下基准测试,该基准测试使用stdClass作为节点存储越来越大的数组,两个测试使用类中的数组属性运行,另一个使用全局数组.

测试代码

ini_set('memory_limit', '2250M');
class MyTest {
    public $storage = [];
    public function push(){
        $this->storage[] = [new stdClass()];
    }
}

echo "Testing Objects".PHP_EOL;
for($size = 1000; $size < 5000000; $size *= 2) {
    $start = milliseconds();
    for ($a=new MyTest(), $i=0;$i<$size;$i++) {
        $a->push();
    }
    $end = milliseconds();
    echo "Array Size $size".PHP_EOL;
    echo $end - $start . " milliseconds to perform".PHP_EOL;
}
echo "================".PHP_EOL;
echo "Testing Array".PHP_EOL;
for($size = 1000; $size < 5000000; $size *= 2) {
    $start = milliseconds();
    for …
Run Code Online (Sandbox Code Playgroud)

php scalability

9
推荐指数
1
解决办法
507
查看次数

PHP命名空间全局

有没有办法让PHP命名空间允许在命名空间内调用函数,就像它们是全局的一样?

例:

handle()
Run Code Online (Sandbox Code Playgroud)

而不是:

prggmr\handle()
Run Code Online (Sandbox Code Playgroud)

这是我的示例代码:

<?php
require_once 'prggmr/src/prggmr.php';

prggmr\handle(function() {
  echo 'This is a test scenario';
}, 'test');

prggmr\signal('test');
Run Code Online (Sandbox Code Playgroud)

别名对函数不起作用:

<?php
require 'prggmr/src/prggmr.php';
use prggmr\handle;

handle(function(){
    echo "Test";
}, "test");
Run Code Online (Sandbox Code Playgroud)

结果:

Fatal error: Call to undefined function handle()
Run Code Online (Sandbox Code Playgroud)

php namespaces

5
推荐指数
1
解决办法
742
查看次数

请求:禁用自动解码

你可以在requests版本1.2.3中禁用自动解码功能吗?

我查看了文档并找不到任何内容,我目前遇到gzip解码错误,并希望手动调试通过请求的数据.

python python-requests

5
推荐指数
1
解决办法
2733
查看次数

VLC记录网络摄像头和流到chrome linux

我目前正在寻找如何完成我被告知可能的事情.

我被告知我们可以使用vlc在linux中流式传输网络摄像头,这将允许以下内容:

  • 将流记录到本地计算机以供以后上载.
  • 使用Chrome的HTML5视频功能播放流媒体.
  • 从Web发送启动和停止命令以进行vlc录制.

我已经研究了很长一段时间,但却找不到可行的解决方案.

我可以使用VLC录制视频,但以下内容

vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=file,dst=capture_4.avi}"
Run Code Online (Sandbox Code Playgroud)

这真的有可能吗?

ubuntu google-chrome vlc video-recording html5-video

3
推荐指数
1
解决办法
2万
查看次数