用于图像阵列的Django序列化器会减慢速度

时间:2019-04-02 02:03:54

标签: python django serialization

我目前正在制作一个Django应用,该应用可以接收包含字节数组的POST请求,该字节数组在给定宽度和高度的情况下会变成2d numpy数组。

我们正在使用Django Rest Framework。

在Stackoverflow上发布时,我已经更改了类的名称,所有内容都可以编译并正常运行,这是一个计时问题。

使用计时器测量时,通常需要0.02s的时间来解析传入的请求。

class APIViewEndPoint(APIView):
    def post(self, request):
        params = json.loads(request.body.decode('utf-8'))
        array = params.get("array")
        height = params.get("height")
        width = params.get("width")
        image = np.array(array, dtype=np.uint8).reshape(height, width)

这是序列化程序,它是处理传入请求的更好的模式。

class PostRequestSerializer(serializers.Serializer):
    width = serializers.IntegerField(required=True)
    height = serializers.IntegerField(required=True)
    array = serializers.ListField(required=True)

现在,我们使用串行器,使用计时器进行测量时,时间为0.8s。

class APIViewEndPoint(APIView):
    def post(self, request):
        params = json.loads(request.body.decode('utf-8'))
        serializer = PostRequestSerializer(data=params)
        if(serializer.is_valid()):
            data = serializer.data
            image = np.array(data["array"], dtype=np.uint8).reshape((data["height"], data["width"]))

是否有更快的方法来在Django中序列化数组?理想情况下,如果序列化程序还可以处理传入数组的重塑,那就太好了。

对此有什么想法吗?

0 个答案:

没有答案