小编Ser*_*sin的帖子

Python套接字压力并发

我需要一个可以处理至少数万个并发套接字连接的Python TCP服务器.我试图在多处理器和多线程模式下测试Python SocketServer包功能,但两者都远远没有达到预期的性能.

首先,我将描述客户端,因为这两种情况都很常见.

client.py

import socket
import sys
import threading
import time


SOCKET_AMOUNT = 10000
HOST, PORT = "localhost", 9999
data = " ".join(sys.argv[1:])


def client(ip, port, message):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((ip, port))
    while 1:
        sock.sendall(message)
        time.sleep(1)
    sock.close()


for i in range(SOCKET_AMOUNT):
    msg = "test message"
    client_thread = threading.Thread(target=client, args=(HOST, PORT, msg))
    client_thread.start()
Run Code Online (Sandbox Code Playgroud)

多处理器服务器:

foked_server.py

import os
import SocketServer


class ForkedTCPRequestHandler(SocketServer.BaseRequestHandler):

    def handle(self):
        cur_process = os.getpid()
        print "launching a new socket handler, pid = {}".format(cur_process)
        while 1:
            self.request.recv(4096) …
Run Code Online (Sandbox Code Playgroud)

python sockets multithreading

8
推荐指数
1
解决办法
3974
查看次数

Delphi编译时间过慢

好吧,我的工作项目中出现了一个奇怪的问题.它是用Delphi编写的.当我尝试编译它时,需要花费8个小时来编译大约770 000行(并且它不是结束),而我的同事只需要15-20秒.我已经尝试过为什么Delphi的编译速度会随着打开时间的延长而降低,我该怎么办呢?

  1. 缩短项目的路径
  2. 使用MyDefrag对光盘进行碎片整理
  3. 使用清除单元缓存(不确定,如果它可以工作)
    我也关闭了优化,我使用调试模式.我的电脑非常快(i5-2310 3.1 GHz,16 Gb RAM,通常的SATA硬盘),瓶颈可能是硬盘,但我的同事也常用.所以,这是非常神秘的,编译如此缓慢的原因是什么.

编辑:我为缺乏信息而道歉.这是其他信息:

  1. 我使用调试模式,释放一个工作相同.
  2. 我们使用Delphi XE版本.
  3. 我最初用项目复制了我的同事的文件夹.
  4. 我不使用网络驱动器,我试图将项目移动到另一个硬盘驱动器.
  5. 关于系统的其他信息:我使用Windows 7 Enterprise N 64位,而我的同事使用Windows 7 32位,另外,Delphi XE是32位(dunno,如果它可以是64位).可能是某种原因的原因?

编辑2:我找到了解决方案!问题是我在Windows 64位系统上安装了Delphi.在虚拟Windows 7 x86上安装它使它工作:在几秒钟内编译.不知道,为什么性能上存在如此大的差距.

delphi performance compilation

6
推荐指数
1
解决办法
2885
查看次数