python获取C#WEBAPI的数据

python代码

复制代码
import ast
import copy
import datetime
import json
import os
import random
import subprocess
import sys
import open3d as o3d;
import numpy as np
import pip;
import mmap

from multiprocessing import shared_memory

import requests
 
    
if __name__ == "__main__": 
    print("version")
    print(sys.path)
    print(o3d.__version__)
    print(sys.version)
    print(sys.executable)
    print(pip.__version__)
    print(pip.__file__)
    print(sys.getwindowsversion())

    
    try:
 

        try:
            print (f'开始测试 {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}')

            # 定义curl命令和参数
            curl_command = ['curl', '-X', 'GET', 'http://127.0.0.1:8200/Python/GetPlyDataV2']

            # 执行curl命令
            result = subprocess.run(curl_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            print(result.args) 
            print ('开始测试 1')
            #print(result.stderr) 
            print ('开始测试 2')
            #print(result.stdout) 
            print (f'开始测试 3 {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}')
            data = json.loads(result.stdout.decode('utf-8'))
            print (f'开始测试 4 {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')}')
            print (f'开始测试 -----{len(data)}')
            #print(data)
 
        except Exception as e:
            print(f"请求异常: {e}")        


 
    except Exception as e:
        print(e)
    print('ok')

    print("version end")

C#代码

复制代码
      [HttpGet(Name = "GetPlyDataV2")]
      public ConcurrentQueue<ConcurrentQueue<double>> GetPlyDataV2()
      {
          Random random = new Random();
          int DataLength = 1001000;
          Stopwatch stopwatch = new Stopwatch();
          stopwatch.Start();
          // 或者预填充
          ConcurrentQueue<ConcurrentQueue<double>> Mylist2DFilled = new ConcurrentQueue<ConcurrentQueue<double>>();
          //Log.Logger.Debug($"开始添加数据 ");
          for (int row = 0; row < DataLength; row++)
          {
              ConcurrentQueue<double> rowList = new ConcurrentQueue<double>();
              for (int col = 0; col < 3; col++)
              {
                  rowList.Enqueue(random.NextDouble());
             }
              list2DFilled.Enqueue(rowList);
          }

          Log.Logger.Debug($"结束添加数据 ");
          stopwatch.Stop();
          Log.Logger.Debug($"ElapsedMilliseconds = [{stopwatch.ElapsedMilliseconds}]   ");
          return Mylist2DFilled; 

      }

python测试结果

想通过http传递大约8位数长度的二维数组给python,测试7位数以上耗时1秒多,但是8位数耗时就大大增大。目前超过1秒,就不满足我的要求。

相关推荐
威哥爱编程2 分钟前
Python 智能体开发实战 06:一个函数里塞了八百行?用状态机把批改流程拆成能回退的步骤
python·agent
晗夜未央11 分钟前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>14 分钟前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
努力努力再努力wz1 小时前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
Patrick在香港1 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
2601_967980111 小时前
Python 初学者必备的常用内置函数
python·编程语言·内置函数·初学者·常用函数
OnlineProxy1 小时前
移动应用数据爬取:通过模拟器与流量嗅探对 API 进行逆向工程
爬虫·python·httpx
染指11101 小时前
162.Agent-LangGraph-检查点的作用
人工智能·python·langchain·agents
飞浪纪元[FWC–FE]1 小时前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
Wang's Blog2 小时前
Java 项目实战:交友项目 - 联系人列表
java·开发语言·交友