128 bytes / line 1024*8 lines 一共 1Mb 数据
CPU: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz (1995.01-MHz 686-class CPU)
real memory = 3488677888 (3327 MB)
TCP 需要 0.230 s
Domain Socket 需要 0.064 s
CPU: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz (1995.01-MHz 686-class CPU)
real memory = 3488677888 (3327 MB)
TCP 需要 0.133 s
Domain Socket 需要 0.064 s
CPU: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz (1995.01-MHz 686-class CPU)
real memory = 3220992000 (3071 MB)
TCP 需要 0.130 s
Domain Socket 需要 0.062 s
测试程序
----------------------------- tcpsvr.py --------------------------------
# vim: tabstop=4 expandtab :
import time, sys
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
from twisted.python import log
class MyTCPProto(LineReceiver):
def lineReceived(self, line):
if line == "profile_start":
self.factory.start_time = time.time()
log.msg("start: %f" % self.factory.start_time)
elif line == "profile_end":
end_time = time.time()
log.msg("end: %f, delta: %f" % (end_time, end_time - self.factory.start_time))
# do nothing
class MyTCPFactory(Factory):
protocol = MyTCPProto
log.startLogging(sys.stdout)
f = MyTCPFactory()
reactor.listenTCP(2100, f, interface="127.0.0.1")
# reactor.listenUNIX("/tmp/foobar", f)
reactor.run()
---------------------------- tcpcli.py ---------------------------------
# vim: tabstop=4 expandtab :
from twisted.internet import reactor, protocol
class MyTCPProto(protocol.Protocol):
def connectionMade(self):
self.transport.write("profile_start\r\n")
data = ("a"*128 + "\r\n") * 1024 * 8
self.transport.write(data)
self.transport.write("profile_end\r\n")
class MyTCPFactory(protocol.ClientFactory):
protocol = MyTCPProto
f = MyTCPFactory()
reactor.connectTCP("127.0.0.1", 2100, f)
# reactor.connectUNIX("/tmp/foobar", f)
reactor.run()
-------------------------------------------------------------------------
结论
对于数据量不大的情况下,还是足够了的。
评论