python sharedctypes 多进程性能测试

经过测试,没有比numpy快。


# !/usr/bin/env python
# -*- coding: utf-8 -*-
import ctypes
import multiprocessing
import random
import time
import os
from multiprocessing import sharedctypes

import numpy as np

import cv2


def make_array(shape=(1,), dtype=np.uint8, shared=False, fill_val=None):
    start = time.time()
    np_type_to_ctype = {np.float32: ctypes.c_float,
                        np.float64: ctypes.c_double,
                        np.bool: ctypes.c_bool,
                        np.dtype('uint8'): ctypes.c_ubyte,
                        np.uint8: ctypes.c_ubyte,
                        np.uint64: ctypes.c_ulonglong}

    if not shared:
        np_arr = np.empty(shape, dtype=dtype)
    else:
        numel = int(np.prod(shape))
        arr_ctypes = sharedctypes.RawArray(np_type_to_ctype[dtype], numel)
        np_arr = np.frombuffer(arr_ctypes, dtype=dtype, count=num

版权声明:本文为jacke121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。