ID:1584657
 
BYOND Version:506.1247
Operating System:Windows 7 Home Premium 64-bit
Web Browser:Something
Applies to:Dream Daemon
Status: Open

Issue hasn't been assigned a status value.
Descriptive Problem Summary:
In a previous version, a feature request was fulfilled that sped up Export(). Unfortunately, there still seems to be a hundred millisecond speed limit of sorts.

Numbered Steps to Reproduce Problem:
1) Download and run these projects simultaneously.
http://files.byondhome.com/Ter13/ServClient_src.zip
http://files.byondhome.com/Ter13/ClientServ_src.zip
2) Host the server and use 'testmessage' to send a message between the worlds. To send a series of pings, use 'ping' and enter the desired amount.

Expected Results:
Something a little closer to thirty milliseconds, which at 60 FPS, is about two frames.

Actual Results:
Around two hundred milliseconds, which at 60 FPS, is about twelve frames. EDIT: This is a local connection: I haven't access to networked computers.



How often does the problem occur:
Every time.

When does the problem NOT occur?
In a future where this problem is fixed.
In addition, it should be noted that these speeds are over a local connection. Over a remote connection, the speeds get increasingly worse. I've found that test environments consistently show between 4 and 10 times as long as a normal .ping takes to the same server when hosted remotely.
Ah, I forgot to ask how it scaled under less than ideal connections. I don't really have access to networked computers.
Very dumb question here, what is Export() used for, mainly?
Communication of data between servers. It's sort of like a really craptastic version of working with winsock.
It's also used to get data from a webpage.
I suspect the message is being transmitted quickly but the destination server is queuing it. One can probably confirm this by using wireshark etc. to see if the packet comes in as expected.

We are both busy working on the webclient stuff so can't attend to this right now but we'll make sure to get around to it. I think Export() has a lot of potential and would like it to be as efficient.
Gonna boot up wireshark and take a look per your command.
Server is up here

209.148.95.37:6657

And a Client here

66.172.27.155:6657


I see a delay, but only by a few milliseconds..
Yeah, I'm not seeing any kind of delay with my wiresharking either. My original thought was basically that some part of the scheduler is still stuck thinking BYOND is running 10fps ala Y2K5. Lummox assured me that simply wasn't possible, but I've had gut feelings before about a number of things involving how BYOND's networking model works that Lummox said weren't possible, and they turned out to be right.

Though, I admit, it took me longer than I am proud to figure out I was examining skype, because wireshark can't keep track of information with both endpoints on the local network.
@Hiro the Dragon King

Looking at your picture, I want to know why using localhost is giving you such a high ping.. should be in the 2 - 4ms not 100+

I also don't understand why the ping is so high between my two servers, here's a ping output from SSH on 209.148.95.37
root@backup:/BYOND/ServClient# ping 66.172.27.155
PING 66.172.27.155 (66.172.27.155) 56(84) bytes of data.
64 bytes from 66.172.27.155: icmp_req=1 ttl=58 time=1.32 ms
64 bytes from 66.172.27.155: icmp_req=2 ttl=58 time=0.687 ms
64 bytes from 66.172.27.155: icmp_req=3 ttl=58 time=0.684 ms
64 bytes from 66.172.27.155: icmp_req=4 ttl=58 time=0.809 ms
64 bytes from 66.172.27.155: icmp_req=5 ttl=58 time=1.25 ms
64 bytes from 66.172.27.155: icmp_req=6 ttl=58 time=6.70 ms
64 bytes from 66.172.27.155: icmp_req=7 ttl=58 time=0.884 ms
64 bytes from 66.172.27.155: icmp_req=8 ttl=58 time=0.723 ms
64 bytes from 66.172.27.155: icmp_req=9 ttl=58 time=0.696 ms
64 bytes from 66.172.27.155: icmp_req=10 ttl=58 time=0.949 ms
64 bytes from 66.172.27.155: icmp_req=11 ttl=58 time=1.39 ms
64 bytes from 66.172.27.155: icmp_req=12 ttl=58 time=0.712 ms
64 bytes from 66.172.27.155: icmp_req=13 ttl=58 time=0.730 ms
64 bytes from 66.172.27.155: icmp_req=14 ttl=58 time=2.27 ms
64 bytes from 66.172.27.155: icmp_req=15 ttl=58 time=3.11 ms


And then from the ServClient

Connecting to remote server: 66.172.27.155:6657...
Connection established. (ping: 231.006ms)
Pong (231.006ms)
Pong (231.006ms)
Pong (197.998ms)
Pong (197.998ms)
Pong (198.022ms)
Pong (197.998ms)
Pong (197.998ms)
Pong (197.998ms)
Pong (197.998ms)
Pong (197.998ms)


Now if I connect ServClient to it's own IP/PORT - 209.148.95.37:6657

Connecting to remote server: 209.148.95.37:6657...
Connection established. (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)


Then ServClient to localhost

Connecting to remote server: localhost:6657...
Connection established. (ping: 131.982ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 98.9746ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 99.0234ms)
Echo: ping (ping: 98.9746ms)


And SSH ping localhost

root@backup:/BYOND/ServClient# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.031 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=2 ttl=64 time=0.023 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=3 ttl=64 time=0.024 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=4 ttl=64 time=0.032 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=5 ttl=64 time=0.022 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=6 ttl=64 time=0.023 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=7 ttl=64 time=0.025 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=8 ttl=64 time=0.033 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=9 ttl=64 time=0.024 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=10 ttl=64 time=0.035 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=11 ttl=64 time=0.024 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=12 ttl=64 time=0.025 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=13 ttl=64 time=0.026 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=14 ttl=64 time=0.027 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=15 ttl=64 time=0.027 ms
^C
--- localhost.localdomain ping statistics ---
15 packets transmitted, 15 received, 0% packet loss, time 13999ms
rtt min/avg/max/mdev = 0.022/0.026/0.035/0.007 ms


Obviously something in DD slowing it down.