Muling & Reporting: The ATMA/GoMule/Flavie Thread ifra

Status
Not open for further replies.
Gross mistake:

Flavie can't create txt files required to generate HTML for the dump without ATMA, unless it's the flavie that is included with GoMule.

So that's where thats going wrong.

Rest'o'the questions:

I assume these are gomule related.

1) You should be able to see 7 buttons, in order from left to right:

Open folder pic, new document pic, open folder pic again, save disk pic, stop cross pic, "GoMule" button, "About" button.

So, next to "Character", the open folder button allows you to open a character (d2s) file.

Next to "Stash", the new document button allows you to create a new stash, the open folder button allows you to open a stash (d2x) file.

The "All" entry in the pane opens up all the characters and stashes in the current project. So, you've probably noticed that when you open a char or a stash, its name appears in the left hand side. "All" opens all the entries in the left hand side as one big stash (that you can take from but not add to).

I have no idea what you mean by "ATMA buttons".

Standalone Flavie does need ATMA, but GoMule has flavie included and does not require ATMA to generate reports. Perhaps the following pics will help.

It's a simple 2 step process:

So you load up all the chars and stashes you want to see, so they appear in the pane on the left. When you click the flavie button it will use all the chars/stsashes in the pane on the left to create the report:

http://img80.imageshack.us/img80/8504/screenshot7fo5.png


Then you find your report.html in whatever folder you have GoMule in:

http://img247.imageshack.us/img247/9959/screenshot6hw5.png

And baddabing you have a report.

Hope that helps :)

And THYIARRRRRD - There you go, official guide. Sticklyplzxxx.
 
Yes, that was a gross mistake, I was stretching there.

My biggest (and main) blunder was not looking for the report.html file in the GoMule directory. It was there all along, just didn't look. :duh:

Thanks silo, and again thanks for helping with this mac mule program.

I bothered Tenshi often in 2002/2003 about getting a mac version out, I'm glad it's here. :thumbsup:
 
Not a problem, enjoy :)

And don't forget to mention any features you want adding, if they're good ideas, i'll incorporate them.
 
Although they may not work if they involve maths and will take ages if it involves a guide. :wink2: :tongue:

(I've added the Guide to the first post btw. Thank you, Si. :thumbsup:)
 
Well, I've finally fired up GoMule, and I have to say that I completely love it. However, would it be possible to increase the amount of items capable of being viewed in the All Items window? I've also noticed a couple of bugs related to having more items than all items will allow: When it overflows, the All Items window doesn't open but still seems to be considered open (most of the stashes turn blue) and nothing really works until GoMule is restarted. Also, when loading a large number of stashes into the project, after a little while, many of them start being considered "Disconnected" and appear to be empty. No amount of restarting GoMule, restarting my computer, or removing/readding the stash from the project seem to have any effect, but opening and closing the stash in ATMA solved the problem. The All Items function would hang similarly if any of the stashes in the project were "Disconnected".

All that being said, my workaround is just to have it split up into multiple projects, and everything works fine. It's simply amazing to finally be able to see all my charms at once.

Thanks!

-CG

edit: BTW, my estimate based on where in the stash list it cuts off is that All Items holds 32,678 itamz before hanging.
 
Well, I've finally fired up GoMule, and I have to say that I completely love it. However, would it be possible to increase the amount of items capable of being viewed in the All Items window? I've also noticed a couple of bugs related to having more items than all items will allow: When it overflows, the All Items window doesn't open but still seems to be considered open (most of the stashes turn blue) and nothing really works until GoMule is restarted. Also, when loading a large number of stashes into the project, after a little while, many of them start being considered "Disconnected" and appear to be empty. No amount of restarting GoMule, restarting my computer, or removing/readding the stash from the project seem to have any effect, but opening and closing the stash in ATMA solved the problem. The All Items function would hang similarly if any of the stashes in the project were "Disconnected".

All that being said, my workaround is just to have it split up into multiple projects, and everything works fine. It's simply amazing to finally be able to see all my charms at once.

Thanks!



-CG

edit: BTW, my estimate based on where in the stash list it cuts off is that All Items holds 32,678 itamz before hanging.

Seems to me that you have too many damn items :P

Let me copy some stashes and maybe I'll find the problem...Interesting about the opening and closing in ATMA. I already knew about the stashes crashing allitems if they're broken stashes, I need to make that a little more friendly of a crash.

Cheers for the bug report.

Edit: I lie, the all items function doesn't seem to hang for me if stashes in the project are disconnected. Intriguing.

Edit: Ok, it's a java.lang.OutOfMemoryError: Java heap space error, meaning either the program has a nasty memory leak somewhere (possible), or you're asking some thing that needs more than 128mb of memory (also possible I guess).

A possible workaround is to increase the size of your java heap:

Original GoMule command: java -jar GoMule.jar
New GoMule command: java -Xms32m -Xmx128m -jar GoMule.jar

That's the default, xms is the normal size, xmx is the max size, so default settings are 32 meg with a max of 128 meg. Try setting the max higher and see what happens. 512 meg happily loads 33180 items in all item view for me (but then again, that is half my RAM!).



 
Last edited:
Well, after a few hours of memory profiling, i've added a call to the garbage collector which should help stop things being stored in memory too long after you close a stash or a char. I don't particularly see any memory leaks, which is good news!

Aside from that, it seems the current method of tbl and txt file reading (read em all in and store them in the memory) isn't very cool in terms of memory, i'm seeing 1.8 - 2.4 meg heap without loading them and a 26 meg heap with them (gasp). Not surprising.

So...where to go from here....

I guess I could try loading in the txt and tbl files just when they're needed and loading in the individual ones, rather than all into memory at once. But meh, I suspect this will slow everything down a lot, I mean can you imagine loading a 20K item stash and every time an item is loaded it needs to read the txt file in (well, more like 10 per item, maybe more) - thats a lot of disk operations.

I'll look into finding a different memory structure, maybe a hashmap will be better than individual arraylists.
 
Well, curious coincidence ... I just started today to look into the sources myself and try to find out what happens when I try to do a Flavie report with too many items being loaded.... seems that one is the same problem as this one.

Loading the tbl and txt files should be fine, even if that takes 2 or 3 megs. After all, this is a constant value, and it is small compared to the 128M memory heap that apparently isn't enough.

If you think about changing the memory structures, you should look at the item structures. I'm just starting to understand the code, but from what I read, every single item in the list is of class D2Item and has lists for set item attributes... those for sure waste memory. And several type info bools could fit into one enumeration type ...
 
Yeah, it's pretty messy. But then again, there's a lot of things that need to be stored and worked out.

And I said 20 meg, which is a fair old chunk of your 128M heap :P Interestingly it seems to be 64 on this computer. I wonder if I got it wrong and 64 meg is the default max size...that would make it almost 1/3 of the memory in txt/tbl files alone.

Edit: Made a few changes to the D2Item storage, like Cormallon said, there were a lot of arraylists being created that didn't need to be (my fault). You know how it is with coding, you just keep adding and adding until you realise you've got bloatware :P
 
Last edited:
And I said 20 meg, which is a fair old chunk of your 128M heap :P Interestingly it seems to be 64 on this computer. I wonder if I got it wrong and 64 meg is the default max size...that would make it almost 1/3 of the memory in txt/tbl files alone.

You did indeed, I misread that ... but my argument still holds. If you could save say 5 meg here, you'd increase the available memory for items from 100M to 105M ... 5% more items (or, if the default really is 64M, you'd get 45M instead of 40 ... 12% more). if we can now handle say 20k items, we'd have 21k afterwards (or 22.4k ...) that's not such a big increase.

Another thought: you store item names in string variables for every item. While that is probably necessary for rares, it isn't for all other types of items. The game coders use these table structures for a good reason: they save a lot of memory. An index into some string table is much shorter than the strings themselves.



 
Good point, I hadn't thought of that. Rather than repeating information that i've already got in memory, I could just do a lookup whenever the getter is called.

Cheers Cormallon :)
 
I'm glad I could help. I can try to do a more complete analysis of your main item classes and propose some optimizations, if you want. Have to dig out our eclipse though... but a look at the objects with some debugger will help for sure ;)

That would be pretty sweet. I've always been a good problem solver, but not a particularly efficient one. Unfortunately I don't have much time at the moment (last semester of my 4 year degree), but certainly I'll put anything major you find to use.



 
A possible workaround is to increase the size of your java heap:

Original GoMule command: java -jar GoMule.jar
New GoMule command: java -Xms32m -Xmx128m -jar GoMule.jar

That's the default, xms is the normal size, xmx is the max size, so default settings are 32 meg with a max of 128 meg. Try setting the max higher and see what happens. 512 meg happily loads 33180 items in all item view for me (but then again, that is half my RAM!).

I tried it at 256 and that seems to be solving the problem quite nicely. (Though I still did have to go through and reopen a bunch of stuff in ATMA to get it to read.)

Also, after trying it this way, it appears that All Items doesn't hang from disconnected stashes and that I was just overloading it even with 2/3rds of my stashes being disconnected.


On an unrelated topic: does gomule support 1.09 characters/stashes?

-CG


 
No CG, there is no support for 1.09.

But hey, it might vaguely work (I was surprised it worked for classic). But it's more than likely to screw up your chars :P

Back anything up before you test it out.

Glad you got it (semi) sorted, i'm still confused by this having to open stashes in ATMA after all items view fails. I haven't experienced this, although I did have half my stashes blue and goMule did hang, as you said above. Any chance you could email a broken stash (one that when you open in ATMA it gets fixed) my way?

[email protected]

Cheers.
 
It doesn't have anything to do with all items view failing. When I first open the stash to add it to the project it shows up as disconnected. When I open the all items view, working stashes turn blue and "bad" ones stay black, so it's a good method of finding the ones I need to reopen.

I was tying it to the lack-of-memory problems I was having last night, but it was doing the same thing today right from the beginning, so I don't know if it's related. ATM, all of the stashes are "good", so I don't have anything to send right now. When I find one, I'll send it along, but I'm not necessarily sure it'll be repeatable, because a stash that's disconnected in one project frequently works in a different project.

-CG
 
That would be pretty sweet. I've always been a good problem solver, but not a particularly efficient one. Unfortunately I don't have much time at the moment (last semester of my 4 year degree), but certainly I'll put anything major you find to use.

OK, I'll see what I can do. Eclipse installed and running ;) The next few days I'm busy, but I'm sure I can send you some results during the next week.



 
In GoMule, when opening up chars, is there a way to select all instead of singly picking each one?

And I'm using a Mac, in which the "hold down shift" feature doesn't work in this case...
 
Last edited:
In GoMule, when opening up chars, is there a way to select all instead of singly picking each one?

And I'm using a Mac, in which the "hold down shift" feature doesn't work in this case...
i'm going to ask since ctrl + C is the copy command, like in windows...

have you tried it anyway?



 
i'm going to ask since ctrl + C is the copy command, like in windows...

have you tried it anyway?

Hi moo,
Well, the copy command (command+C for Mac) isn't what I'm looking for here.

Rather, I'm looking for a "select all" command as I have tens of characters I'd like to load into GoMule. Mac commands for "select all" are:
-Highlight one item, hold down shift, click another item to select all inbetween
-Hold down Shift and drag the cursor over all items you'd like to select
-Hold down Command and pick each item to select and add to

Unfortunately none of these commands work.



 
Status
Not open for further replies.
Back
Top