Jump to content
The Lotus Eaters: Share Bug Reports and Feedback Here! ×
The Lotus Eaters: Known Issues ×

Performance Tips To Development Team


Claude47
 Share

Recommended Posts

Hi The development team.

TIP1
This is my advice for opimization for Warframe.x64.exe using libraries.
Tip link=http://msdn.microsoft.com/en-us/library/aa288466%28v=vs.71%29.aspx

Exsample split Warframe.x64.exe[24mb] functions for 4 libraries[6mb each] then

size drop about 90% and is faster update, controlling is faster.

Warframe.x64.exe[1mb][main function]
Lib1.dll[6mb][uI]
Lib2.dll[6mb][update]
Lib3.dll[6mb][check&defrag]
Lib4.dll[6mb][play functions]

And if want update functions then update only Lib2.dll ohters can be same.
So need lower bandwidth to update files.

Debuging is faster using only libraries, if is crash then main functions dont

crash easyly and main can fix libraries calling them functions again.

Main[24mb]all functions inside crash then cant be used

Main[1mb][OK]
Lib1.dll[6mb][ok]
Lib2.dll[6mb][crash]
Lib3.dll[6mb][ok]
Lib4.dll[6mb][ok]

If lib2.dll crash main seeing it it call function again if not working then print

error message.try{ call lib2.dll functions}catch{"update failed trying

again";goto main functions}

Ohter this way is faster Main functions exsample
Warframe.x64.exe[1mb][PC] and Warframe.exe[1mb][PC]
Can be used same libaries if libaries functions support it.

Now game has PS4 and Xbox one so they main functions is diffrent but can use
same libaries Lib1.dll & Lib2.dll & Lib3.dll & Lib4.dll

-------------------------------------------------------------------------------------------------------
 

TIP2
At last file sizes F.TextureDx9.cache[4gb] this is too much for file size if this

file corrupted then need download all 4gb file. Split using CD size[700mb] get;

F.TextureDx9.cache[4gb]split to

F.TextureDx9.cache1[700mb]
F.TextureDx9.cache2[700mb]
F.TextureDx9.cache3[700mb]
F.TextureDx9.cache4[700mb]
F.TextureDx9.cache5[700mb]
F.TextureDx9.cache6[500mb]

Most people using hdd disk drives so avg speed is 25mb/s.

So 700mb/25mb=28s load to memory and
4000mb/25mb=160s load to memory.

4000mb(file corruption high)[DVD size]
700mb(file corruption lower)[CD size]

This update is too big for update 15.2.0.version but try out if is faster in

future usage. Example update 16.0.0[get all this update functions working]

Thx all support team reading this message.
I hope this help people with crash / corruption get lower.

-------------------------------------------------------------------------------------------------------

TIP3
Hosting system i think need fix up better way.
4 players choice who is best connection put score system.

Exsample client->Warframe server(ping)

Score points webspeed

0-50ms        [5]
50-100ms    [4]
100-200ms    [3]
200-500ms    [2]
500-1000ms    [1]

so client find best score point with squad has so that be to host.

Mr Claude47:Player/software engineering

Edited by Claude47
Link to comment
Share on other sites

The first two points are valid enough. The last point isn't true, you should also factor in packet loss in your Host calculation. You can have a fast connection that drops many packets and in that case that player wouldn't be the best host.

Link to comment
Share on other sites

Thx for fix TIP3 i correct caculation with "packet send/packet received*packet latency=total ping with corrpution lost".

 

Exsample

packet 4 send/ packet 4 received*packet latency 100ms=100ms no corruption

packet 4 send/ packet 3 received*packet latency 100ms=133ms with corruption

packet 4 send/ packet 2 received*packet latency 100ms=200ms with corruption

 

packet 4 send/ packet 4 received=1 factor no corruption

packet 4 send/ packet 3 received=1,33 factor is so small with corruption

packet 4 send/ packet 2 received=2 factor is lot with corruption

 

thx to 3thereal for information and fixing calculation.

Link to comment
Share on other sites

Hi  aim4il if you mean TIP3 meybe i explain too sort harder explains is here.

 

TIP3-explain:

 

pings with caculation and error

client->ping->warframe-server

 

All players with squad ping same time warfame-server

with "packet send/packet received*packet latency=total ping with corrpution lost" calculation with error delay

 

0ms time

 

Player1=100ms

Player2=110ms

Player3=115ms

Player4=120ms

 

at last player responce time 200ms-1000ms

now is hard part choice best caculation with player

all players responce time is diffrent so all client need wait some time when all client is ready to choice best player.

 

prosessing with list take some 10-100ms time

and choice best player with that ping-list.

 

if choice go over 1s time then fast reponted with player go frist to host.

client has time 1s=1000ms choice best player

Link to comment
Share on other sites

No i dont test if they servers sending whole files, but caculating differences is diffrent story.
Understanding how hosting and sending files then can calculate diffrentes each file or packet.

file dont have delay read.
Harddisk has delay(seek time) move sector to read file.
Harddisk if file inside track time is 2x slower read, but if file outside track is ready same as ssd-drive.
ssd-drive dont have moving parts so delay dont have, but reading big file take time to read memory.
packet has (payload)data=file data.
multiple packets has fill file data.

if need more reading i put links to read.
http://computer.howstuffworks.com/hard-disk.htm        (harddisk)
http://computer.howstuffworks.com/solid-state-drive.htm    (ssd)
http://computer.howstuffworks.com/question525.htm     (packet)
https://tools.ietf.org/html/rfc3393    (packet-long-read) some people know rfc documents.

(Advanced Hard Drive Data Recovery)

Edited by Claude47
Link to comment
Share on other sites

TIP4

Enable IPv6 usage:

This commands need usage cmd-console:

1.net start iphlpsvc(service)
2.netsh int ipv6 set teredo client teredo.trex.fi(if client dont work try enterpriseclient)
3.netsh int ipv6 show teredo
    State:qualified(enabled) or dormant(standby)
    if type is "disabled" is need enabled


4.route print
    check interface list "teredo tunneling psendo-interface" installed
    check interface teredo id-number
    check ipv6 route table that teredo id-number is frist "::/0"
5.regedit->
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache\Parameters]->
AddrConfigControl:dword(32bit)value=0

6.ping ipv6.google.com

This meybe help some people has router no support upnp or nat-pmp so need enable client usage ipv6.
exsample options->ipv6->enable/disable(experiment usage) if works then use it.
Client now working with ipv4-support but no ipv6 in future support.

It be nice if warframe is frist game with ipv6 support in game =)

 

c# coders guide https://msdn.microsoft.com/en-us/library/windows/desktop/ms738649%28v=vs.85%29.aspx for client usage ipv6.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...