daltoncabrera / msnp-sharp

Automatically exported from code.google.com/p/msnp-sharp
0 stars 0 forks source link

No way to determine online status with autosynchronize off #295

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. turn auto synchronize off
2. i still call FindMembershipAsync("initial"....... that way i can get the 
budylist without storing the contacts

I also call SendInitialServiceADL,  but it seems thats not what makes the msn 
server send me back buddys that are online.

What is the expected output? What do you see instead?
packets back from the server telling me who is online

What version of the product are you using? (MSNPSharp, OS, Mono etc.)
5.0.0.2312

Is your code check out from SVN or download from our download site?
svn checkout

Please provide any additional information below:
My reason for not wanting to initialize the addressbook/contact list is the 
amount of ram it uses.  There is multiple msn accounts logged in and with this 
on it can lead to 100-200mb of ram usage with just 2 accounts.

Original issue reported on code.google.com by dea...@gmail.com on 22 Oct 2011 at 6:21

GoogleCodeExporter commented 9 years ago
Is there any way i can determine which contacts are online without initializing 
the contactlist/addressbook?

Original comment by dea...@gmail.com on 22 Oct 2011 at 6:58

GoogleCodeExporter commented 9 years ago
You already know the answer: No way.

How many contacts do you have in each account?

Original comment by freezing...@gmail.com on 22 Oct 2011 at 10:13

GoogleCodeExporter commented 9 years ago
one has 300 the other has 1500
 the problem is the address book gets placed into the large heap having more than one copy of the class in memory leads to fragmentation and basicly quadruples the required ram

Original comment by dea...@gmail.com on 22 Oct 2011 at 11:10

GoogleCodeExporter commented 9 years ago
I am not sure this is the cause, the example client has more than 329 contacts 
in the addressbook and it only takes around 30m for the whole thing. I have 
experience of runinng 1000 bot on a machine as well, the memory cost is around 
10+m for each bot. Please check your program.

Original comment by freezing...@gmail.com on 23 Oct 2011 at 5:45

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I fixed the ram issue,  problem was in the address book,  it will always 
require 2x-5x the needed ram because of its structure and having more than one 
large address book(750+ contacts) in memory will lead to large heap 
fragmentation.  instead i pull the buddy list in before it becomes a 
contactlist with a new event handler and autosync off.

The other issue was fixed by creating another functions that can create the 
initial adl`s based off a list of strings instead of the contact list.  from 
there the ononline events progress as expected on signin.

ram footprint has been reduced drastically with multiple instances but still 
gives bots access to the contact list at signon.  will submit diff when 
finished.

Original comment by dea...@gmail.com on 23 Oct 2011 at 9:24

GoogleCodeExporter commented 9 years ago
Good job! I am eager to see your code! It has been such a long time that no 
developers from outside the project submit a fix :)

Original comment by freezing...@gmail.com on 25 Oct 2011 at 4:01

GoogleCodeExporter commented 9 years ago
But I still had a question, how can you build you ADLs without have an 
addressbook?

Original comment by freezing...@gmail.com on 25 Oct 2011 at 4:02

GoogleCodeExporter commented 9 years ago

Original comment by freezing...@gmail.com on 8 Nov 2011 at 5:08