python对象模型 ruby_如何在Ruby和Python之间传输基本对象?

目前我正在使用

JSON作为序列化格式,将包含字符串,数字和

Ruby数组的简单哈希转移到

Python脚本中:

IO.popen('./convert.py','w') do |w|

w.write({ :height => height,:width => width,:id => job_id,:data => pix }.to_json)

w.write "\n"

w.close_write

end

在这种情况下,height,width和job_id都是数字,pix是整数数组的数组.

这个运行的python脚本是:

#!/usr/bin/env python

from PIL import Image

import json

import sys

output = json.load(sys.stdin)

width = output['width']

height = output['height']

name = 'images/' + str(output['id']) + '/image.bmp'

data = [ tuple(datum) for datum in output['data'] ]

img = Image.new("RGB",(width,height))

img.putdata(data)

img.save(name)

使用具有390万个值的数组(可能是通常使用的大小的1/4)进行的一些快速测试显示脚本需要大约105秒,并且所有行都低于输出90秒… …已注释掉.显然,如果序列化没有花费85%的处理时间用于这样一个简单的脚本,那将是很好的.

加速我能想到的唯一方法是找到某种形式的二进制序列化/编组,可用于将数据从Ruby传输到Python.不幸的是,我一直无法找到任何这样的系统,只有RMarshal似乎能够以其他方式工作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值