Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by BeardedManBrent · Jul 06, 2013 at 03:07 AM · rpcfilenetworkview

RPC calls are slowing down exponentially...

I posted this in the forum but I thought I might give it a shot here (for time reasons).

So I am trying to send a 60mb file via RPC's. I have effectively broken the file into many byte[] and tested various sizes (4096b, 128kb, 1mb, 100b, etc).

My next step I am sending n many packets at a time over RPC (lets say one 128kb or five 4096b at a time). I then wait for a response from the other parties to claim that they have received the file (via RPC).

After receiving all responses saying that they have successfully received the packet and have began writing to the file I then send my next set of n packets over RPC.

This all works completely fine and flawless on my local machine but when I test across a LAN or Internet there seems to be an exponential growth in time for each packet as time continues. What would be the reason for this. I presume that they are not in fact getting piled up (TCP/reliable style) because I am waiting for a response from the client saying that the data has been successfully received.

Comment
Add comment · Show 11
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Benproductions1 · Jul 06, 2013 at 06:17 AM 0
Share

There is no need to check if they have received anything. The Unity RPC system takes care of both packet loss and order. So there is no need for that.

avatar image Benproductions1 · Jul 06, 2013 at 06:18 AM 0
Share

Where is the slowdown happening? Is it on the machine, the internet or Unity?

avatar image BeardedManBrent · Jul 06, 2013 at 07:13 AM 0
Share

I thought that from the start. I originally didn't check if the user received the packet and it worked fine locally. However when I did anything over LAN or internet it would slow down exponentially as the download continued. So for example the first 10% would go really fast, the next 10% would be okay, the next 10% gets kinda slow and anything after 50% would take all day. It is as if each RPC call is slower than the last. I checked my packets and everything else... they are all fine.

avatar image BeardedManBrent · Jul 06, 2013 at 07:16 AM 0
Share

I started waiting for the client to receive the packet because I thought that I was just sending each packet too fast across the network and I was getting into a TCP lock. So I decided get a callback from the client when they have received the packet before sending the next group. I obtained the same results as last time... it worked just fine on my local machine 127.0.0.1 but when I tried over LAN it became exponentially slower as more and more packets were sent.

avatar image Benproductions1 · Jul 06, 2013 at 07:20 AM 0
Share

If you check the stats while running in the editor. Is there a significant difference in the amount of bytes that it says are being set by RPC's to the amount your handing the RPC's? If so, then Unity might be trying to split up the packets even further, which would slow it down.
Again, is Unity being slow, or are the packets just taking longer?

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by BeardedManBrent · Jul 07, 2013 at 12:29 AM

Okay... so this was very very strange. I stopped sending a header along with the packets and just sent the raw data divided up into optimal portions. But before sending the file I sent out an RPC that contained all my main header information. By doing this, and possibly something else along the way. My issue is solved. Thanks for your input!

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image iv7 · Jan 30, 2014 at 05:51 PM 0
Share

Hi! It was not helped to me. I made RPC call with only one byte massive. Same slowing down. What you made?

 [RPC]
 void SendContent( byte[] content )
 {}
avatar image sdgd iv7 · Jan 30, 2014 at 06:00 PM 1
Share

please don't post answers as questions/comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

21 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

get return on networkView.RPC 1 Answer

Does the position change need state synchronization? 2 Answers

Problem with Playmaker Send Remote Event 1 Answer

Get NetworkPlayer from ViewID 1 Answer

networkView not called on Child objects? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges