Mark objects as permanent

Hi,
we've got an application which is a text processing and analysis tool. It has a main analysis cycle where the application spends most of its time. As it goes, it collects some data and saves them in memory data structures (mostly, hash tables). The amount of the data is big - gigabytes, and amount of in-memory data structures is also a few gigabytes.
We have a machine with 16G and from the calculation of the memory consumable by data structures they should occupy just a portion of that. However, we hit memory limit very fast - and when we do, the system starts garbage collecting rapidly, and the system runs very slowly for quite a long time after that, but it doesn't really crash.
What I figure from this picture is that we have the following characteristics of memory:
- we have almost a fixed size per second of temporary objects that should not leave young generation. Those are used in this processing cycle and are thrown away at the end of each cycle. The size depends on the system thourhoutput and it is almost fixed, almost the same every run
- we have a huge data structure which contains objects that live from the very beginning until the very end of the application. This structure grows in size with time
- we do have some objects which live for some time, but their amount is not comparable with neither first nor second group. However, there are plenty of them to fill up tenured generation, and trigger full GC
So two things came to my mind:
1) adjust the ratio between young and tenured generations. It seems like our young generation may require only fixed amount of memory throughout the whole application run time, and tenured will then get the maximum available memory
2) somehow tell GC not to pay attention to the part of the tenured generation, which is quite significant, because we know that this part is kind of "permanent". This will reduce the full GC time
I know how to do the first, but I am unsure if this is the right thing to do. Your opinion?
I don't think there is a standard way of doing the second thing, but perhaps there is some way?
Thanks.
Denis

We use "-d64 -server" flags, so it is the default GC
for such a configuration (see the details of the
configuration above)OK, so in this case you're most likely picking up the stop-the-world parallel GC.
I personally don't think that CMS in itself will help. It sounds to me that the live size of your objects is coming too close to the capacity of the old generation. When, this happens, the old generation will be again full very soon after it's been collected, hence the frequent GCs you're seeing. GCs work best when they have enough "breathing space" in the form of some free space in the heap.
So, what can you do? There are a couple of things you should try.
First, try to Increase the heap size, which will likely allow the application to run with less Full GCs.
Second, if you don't want to / can't increase the heap size, try to balance to decrease the size of the young generation. This will increase the size of the old generation and, maybe, give it more breathing space.
Of course, I could diagnose the problem better if you shared a GC log (or, at least, GC log extracts which include the time where frequent GCs occur).
Regards,
Tony (HS GC Group)

Similar Messages

  • Is there any way to make Object size permanent in Pages?

    Hi. Does anyone know how to make the size of an object permanent? I use a lot of clip art and after resizing it, I would like it to stay that size but each time I select an object, the size selection box always appears. This is mainly a problem for Pages for the iPad.
    Appreciate any help

    Only if you have used a character style to italicise the words. If you have that you can change one of the word to a chosen colour and all words with that style will get the new colour

  • Marked objects connect with thin line

    I work in CS6. When I mark two or more objects they automatically connect with a thin line (and a white square) between them. They are still two separate objects, but the connection between them is shown (and they can be dragged together). Is it possible to change this setting?  

    That's the selection bounding box, and no, you can't change it.
    The bounding box is going to change to be the smallest rectangle that completely encloses all of the selected objects and may look quite different from what you describe if the objects are not the same size and aligned vertically or horizontally.

  • Creating a percentage of marked objects from a bag help

    Hey guys, i've had good feedback and help from these forums before so thought i'd pick your brains again...
    I'm looking at making a sim/game based around random results.
    The experiment im supporting has (for example) 100 rubber ducks in a bag, you pick out 30 and mark them with a cross and place them back in the bag. Then you pick another 30 and note how many of the marked ducks you have found again.
    I have some knowledge of Flash and have managed to make a random dice simulator and a few others.
    I figure the best way is to forget about manually marking the ducks but instead have a drop down box where you can sellect how many of the 100 will be marked.Then have an action button which produces the results (in numbers?) underneath each corresponding duck (1 normal yellow, one marked).
    Anybody able to help?
    Thanks very much!!
    Ollie

    Yes, it makes sense, and the simulation I gave you does that and a bit more.  It actually let's you pick ducks more than just twice.
    I do want to make sure I understand the concept clearly, so I'll write things in "my words" just to be clear.
    When you say you wish to simulate the picking the ducks, you mean that when the user clicks the bag, the computer will pick the ducks randomly for him, the user will not actually see 100 ducks and start picking each one.  Correct?
    If the answer to that is YES, then the button that says "Draw", that's your bag.
    Now I separated the part that does the reporting, from the part that does the drawing to let it be more flexible and so that you could slice it better to suit your needs.
    My simulation does pick random ducks every time.  Basically what it does, takes 30 ducks out of the bag, marks them and puts them back it.  You click again and it picks 30 ducks out of the bag, marks them, and puts them back in.  So a duck can have more than one x.  Technically speaking, those are very special rubber ducks because they can have 2,147,483,648 'X's on them.
    Let's look at the code that actually does this in more detail
    function drawFromBucket(event:MouseEvent):void      // could be called drawFromBag
        var ducksPickedList:Array = new Array();       // this is how I keep track of which ducks have been taken OUT of the bag in each draw
        var amountOfDucksToPick:int = 30;               // How many ducks to take out, easily changed to suit your needs
        howManyDraws++;                                      // Keeping count of how many times have we taken ducks out of the bag
                                  // Here is where we pick the ducks  This is a loop that will go 30 times or how many you choose above
        for (var index:int = 0; index < amountOfDucksToPick; index++)
             // Pick a duck at random and check to see if we already picked it
             // if we did, pick another.
             var luckyDuckIndex:int;
             do
                  luckyDuckIndex  = Math.random() * howManyDucks;     // Pick a duck by it's number
              } while (ducksPickedList.indexOf(luckyDuckIndex) >= 0);  // Check to see if it's out of the bag, if it is out already pick anotherone.
              trace("Lucks duck #" + luckyDuckIndex.toString());   // So you can see in your Console which ducks have been picked.
                                                                    // put it in the list that stores the ducks that out of the bag.  This gets reset on every draw from the bag
             ducksPickedList.push(luckyDuckIndex);
            //  Mark that duck
            var luckyDuck:Object = bunchOfDucks[luckyDuckIndex];     // We just had a number this is how we grab the duck that belongs to that number
            luckyDuck.timesSelected++;                                           // We write an X on that duck.
      The reporting function basically tells you how many ducks are there than have more than x amount of 'X's on them, although interesting, not exactly what you needed.  What you need is not that complicated to get, there is multiple ways of doing this, but I'll just edit the function above.
    I got rid of the button that showed the results, and just show the results on each draw.
    Here is the final code:
    stop();
    var bunchOfDucks:Array = new Array();
    var howManyDucks:int = 100;
    var howManyDraws:int = 0;
    drawDucksButton.addEventListener(MouseEvent.CLICK,drawFromBucket);
    // Create the ducks
    for (var duckIndex:int=0; duckIndex < howManyDucks; duckIndex++)
        var oneDuck:Object = new Object();
        oneDuck.timesSelected = 0;
        bunchOfDucks.push(oneDuck);
    function drawFromBucket(event:MouseEvent):void
        var ducksPickedList:Array = new Array();
        var amountOfDucksToPick:int = 30;
        var amountOfFirstTimePicks:int = 0;
        var amountThatHaveAtLeastOneX:int = 0;
        howManyDraws++;
        for (var index:int = 0; index < amountOfDucksToPick; index++)
             // Pick a duck at random and check to see if we already picked it
             // if we did, pick another.
             var luckyDuckIndex:int;
             do
                  luckyDuckIndex  = Math.random() * howManyDucks;
              } while (ducksPickedList.indexOf(luckyDuckIndex) >= 0);
              trace("Lucks duck #" + luckyDuckIndex.toString());
             // put it in the list
             ducksPickedList.push(luckyDuckIndex);
            //  Find the duck that belongs to the number pulled
            var luckyDuck:Object = bunchOfDucks[luckyDuckIndex];
            // We check to see if the duck had a X previously and
            // count accordingly
            if (luckyDuck.timesSelected == 0)
                amountOfFirstTimePicks++;
            else
                amountThatHaveAtLeastOneX++;
                // Write an X on that duck.
            luckyDuck.timesSelected++;            
         showResultsBox.labelNotMarkedBefore.text = amountOfFirstTimePicks.toString();
         showResultsBox.labelHasPreviousX.text = amountThatHaveAtLeastOneX.toString();
         showResultsBox.labelAmountOfDraws.text = howManyDraws.toString();
         getStats();
    // Find out how many ducks where picked more than the amount
    // specified in the moreThanAmount parameter
    function howManyDucksPickedMoreThan(moreThanAmount:int):int
        var count:int = 0;
        for (var duckIndex:int=0; duckIndex < howManyDucks; duckIndex++)
            var oneDuck:Object = bunchOfDucks[duckIndex];
            if ( oneDuck.timesSelected > moreThanAmount)
                count++;
        return count;
    function getStats():void
        var pickAmount = 2;
        var resultAmount:int = howManyDucksPickedMoreThan(pickAmount);
        showResultsBox.resultText.text = "There were " +resultAmount.toString() + " ducks picked more than " + pickAmount.toString() + " times in a total of " + howManyDraws.toString() + " draws.";    
    Here is the screenshot.  Do not pay to much attention to my ducks. 
    What you could use is a reset button that sets everything back to 0 to start over again, also you could easily let the user choose the amount of ducks to pick from the bag, and to select the value that they want to use for the report,  Would probably need that report button again if you choose to add that.  I'll leave those to you.
    -Art

  • Marking object names to be identified in fxg code

    We have engaged a designer to build screen layouts out that we want to replicate in Flash builder- Pls note we are not exporting the layout as Fxg as we need to build subcomponents within the layout
    So we have tried to export the Illustrator output in fxg format and check the settings which we replicate in FlashBuilder. We would like to name the objects in Illustrator meaningfully so we can connect the front-end with names in the fxg code.Right now the fxg code runs into 1000+ lines and challenging to connect the individual controls with objects in the code. Currently we see an objID.
    How do we name objects in Illustrator meaningfully from the front end?

    Did you try naming them in the Layer Panel?
    here I name an object rectangle and it shows up as rectangle the symbols are called bubble they show up as well so I think you may simply name the object and then look for userLabel="name" and you will be able to find the objects in the case of a symbol they will all be the same so you can change all.

  • How can I elimimate "object browser" permanently?

    I have removed it from my add-ons but the next day it's back. I have even used regedit to scour the registry but the next day it is back again anyway. There must be a way to get rid of it PERMANENTLY. Any ideas?

    It could be the work of one of your add-ons, or even add / mal-ware.
    Look thru your add-ons list and make sure you know what each one is
    and what it does. Also, check the programs that are on your computer
    '''Windows:''' Start > Control Panel > Uninstall Programs.
    '''Mac:''' Open the "Applications" folder
    '''Linux:'''
    * [http://www.freesoftwaremagazine.com/articles/see_all_your_installed_applications_ubuntu_unity Ubuntu Unity]''' {web link}
    * Xfce: Applications Menu category sections
    * options depends on the package manager and the desktop environment
    Go thru the list. If you find something that you don't
    know what it is, use a web search.
    '''[https://support.mozilla.org/en-US/kb/troubleshoot-firefox-issues-caused-malware Troubleshoot Firefox Issues Caused By Malware]''' {web link}

  • How to Combine/Integrate Objects Permanently into an Acrobat 8 Standard PDF?

    I just scanned a manuscript and was attempting to clean it up with the only version of Acrobat I have - Acrobat 8 Standard.
    When attempting to do redaction, I found that this feature is only available on Acrobat 8 Pro.  So, instead, I covered up the dark marks in the middle and on the edge of pages using all-white rectangles with the Comment & Markup --> Draw Rectangle tool.
    Now, I can't seem to save the document so that the covered-up areas become permanent.  I save the document, but once opened, the user can still access the rectangles, which in addition to not being what I want, is just plain annoying.
    How can I save the PDF so the objects become permanent and inaccessible?

    Flatten the annotations to make them a part of the PDF page.
    This question thread has links to several tools that can be used with Acrobat Standard.
    Is flatten not offered in XI Standard? (Edit PDF)
    Note that use of annotations Does Not "redact".
    The "masked" content is not permenantly removed.
    For that you use Acrobat Pro.
    Be well...

  • How to select objects marked in the layer panel?

    Hello,
    this may be simple and trivial, but somehow I fail to express it nicely so that the search engines would find the answer for me...
    so here is my question.
    Imagine that you have several objects marked in the layers panel. (by "marked" I mean, I simply clicked on the objects name in the panel)
    Unfortunately, when they are marked there, it does not make them yet selected in the main viewport.
    So - how do I make the marked objects selected without Shift+clicking every single circle on the right-end side of the object name?
    (using CS5 version of the Illustrator)
    Many thanks!

    Well, I was thinking your second-born child, Scott, but the cursor will work too.
    P-Dan: hold your option (alt) key down and drag your cursor over the NAMES of the objects (or groups or layers) in the layers panel. If you want to skip over an object or two (or 10), hold both shift and option keys down and click on the noncontiguous object you want to add to the selection. From there, with the option key still down, you can continue selecting contiguous objects. Or hold the shift and option keys down and hop-scotch through your layers panel selecting discontiguous objects at will.
    If all of this is too much for you, a viable alternative is to go into dentistry.
    May I remind you all also that Monika suggested this very technique way up high in this thread.

  • Help!  Got permanent marker on my screen!

    I inadvertently got permanent marker on my screen during the brief period I didn't have the crystal protector on. Does anyone know if there is a way to get it off?
    Ugh!

    Permanent marker is not all that permanent.
    Find an erasable marker, (like used to write on White boards). Mark over the permanent market with the erasable one. Erase.
    Most of the time that does it.
    Then RUN to the store and get a screen protector. ATT sells them. They are great for stuff like this.

  • Events in Service Objects

    Hi,
    Is it possible to have a service object checking permanently for events
    posted by other service objects? I have not been able to start this type of
    object.
    Thanks,
    Guillermo Turk
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    I have something this (please, some patience :-) ):
    //Example: handle event (the event is Beep)
    interface AlarmListener{
    void Beep(String hour); //declare a event handler
    //The class that "raise" an event Beep
    class Clock{
    AlarmListener theAlarmListener; //Referecne to an listener object
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener = theAlarmListener;
    private ringAlarm(){
    theAlarmListener.Beep("10:00 P.M."); //Raise Beep event
    class Guy implements AlarmListener{
    public Guy(){
    Clock clock = new Clock();
    clock.addAlarmListener(this);
    //Handle Beep event
    void Beep(String hour){
    System.out.println("Ohhh, its time of wake up!!!");
    //End
    But, in this model my source object have only an listener object.
    This can be improved by a array, like this:
    class Clock{
    AlarmListener[] theAlarmListener = new AlarmListener[10];
    private int i = 0;
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener[i++] = theAlarmListener;
    //More code...
    making to a side the limitation of size of an array (although this can be managed somehow if it is necessary), the problem begining to be more and more complex... i.e., it is necessary to create a method for unregister a listener...
    And, what about with multi-threads programs??? The addAlarmListener method should be synchronized or something??
    It should have an easier way!
    PD: I think that I have used the Delegate pattern in conjunction with some other pattern.
    PD: Forget my English. It is terrible
    Saludos

  • Indesign CS5 - how to align objects

    Dear All,
    I have a problem with Indesign that is present from CS2 trough CS3 & CS4 version. I thought that CS5 version finaly will solve this issue, but it seems to me that nothing changed.
    When we have to align two objects lets say in Illustrator,  we may always mark the reference object by second click (then it is locked). In different software the sequence of marking objects for aligment is important (even better solution in my opinion than in Illustartor). But in Indesign things work different. If we align objects to the top - the most top object is reference. When we align to the left the object most to left is the base for aligment.
    I think that everyone learned to live with that by right placing the objects before aligment. Sometimes by centering (in past versions) we were forced to lock one of the objects before aligment. But now in CS5 locked object is not selectable. Besides that I never liked this long "work around" method.
    My question is how to easy align vertical centres of the objects shown on the picture below when I want object A to stay on place and object B to be centered to A. I don't want to use smart guides.
    Paul

    Hello Peter,
    thank you for fast feedback. I appreciate it.
    I don't want to use smartguides because when there are more objects around it will be confusing to guess if you have right center or not.
    Changing preferences for locked objects will not help much I guess. I like the way the locked objects are unselctable now and of course, as you mentioned, it is time consuming way to go.
    The case is, that I would like Adobe to add this issue to the wish list. If this "double click" way is good for Illustrator, why it is not implemented in Indesign, forcing users to use some magical, time consuming, workarounds.
    To be honest, I hopped that I miss the point in this case and someone will tell me some obvious shortcut to use by selecting the objects to get the things right.
    Paul

  • Plug-ins for object extraction

    Hello,
    ImageSkill developed 2 Photoshop-compatible plug-ins for
    extraction of opaque and translucent objects (fur, smoke, glass,
    haze, wool etc). Using our products you can make a result that is
    unavailable with other masking programs - Adobe Magic Extractor,
    Corel Knock-Out, Microsoft Expression and so on. You do not need
    accurately draw out an object. Mark object area and press Apply.
    Features at glance
    • Ability to cut translucent objects like glass, fog,
    smoke, fur etc
    • Color unmixing for background replacing
    • There are tools for debris removing and holes filling
    within received mask
    • You can switch between original image and result one
    and preview the extracted object against a colored matte background
    for result checking.
    • 16-bit mode support
    Translucator is a shareware, free 30 days/uses fully
    functional demo version you can download online:
    [url=http://www.imageskill.com/translucator/Translucator_Setup.exe]Download
    Translucator [/url]
    Product page:
    [url=http://www.imageskill.com/translucator/translucator.html]http://www.imageskill.com/t ranslucator/translucator.html[/url]
    User’s Manual (in PDF):
    [url=http://www.imageskill.com/translucator/tr_manual.pdf]http://www.imageskill.com/trans lucator/tr_manual.pdf[/url]
    Background Remover is a shareware, demo version you can
    download online:
    [url=http://www.imageskill.com/backgroundremover/BackgroundRemover_Demo_Setup.exe]Downloa d
    Background Remover [/url]
    Product page: [url=
    http://www.imageskill.com/backgroundremover/backgroundremover.html]http://www.imageskill. com/backgroundremover/backgroundremover.html
    [/url]
    Thanks,
    Dmitry
    http://www.imageskill.com
    ImageSkill Software

    On Thu, 02 Nov 2006 13:40:12 +0300, ImageSkill
    <[email protected]> wrote:
    > ImageSkill developed 2 Photoshop-compatible plug-ins for
    extraction of
    > opaque
    > and translucent objects (fur, smoke, glass, haze, wool
    etc).
    While I personally still don't have any need for Translucator
    (I must
    admit the name made me laugh badly) so I didn't test it, I
    think
    Background Remover is quite capable. I was unable to achive
    good results
    using it only on a couple of test images out of quite a large
    set, but I
    must admit I wasn't able to do any better with hand masking
    using brush,
    so I can't blame the plugin. Taking into account very basic
    bitmap masking
    capabilities of FW, I think it's a great addon, and
    considering the price
    for most competitors, it's clearly the best.
    That's the end of our scientists report ;-)
    Ilya Razmanov
    http://photoshop.msk.ru -
    Photoshop plug-in filters

  • Export only selected objects of a drawing

    Hello,
    I want to export only some objects of a drawing to png. Therefore I select them via click + Shift. I used CorelDraw before and there i can select, in the export window, "Only marked objects" (don't know the exact English term). Is there a comparable option to Corel?
    Thanks,
    Slodomir

    off the top of my head i don't know a way of doing this automatically...maybe i just don't know of it...
    My work around would be:
    unlock everything
    select your objects
    invert your selection
    hide the now selected objects
    export...
    bit of a work around but you could do an action to speed it up if you've got a few to do.
    hope that helps

  • Changing package assignments of many objects

    I'm having to put a significant number of objects in another package, and I was wondering if there's a facility hidden somewhere that will change the assignment of any number of different objects.
    Any thoughts?

    hi,
    in your system it is possible to mark some are all of the displayed objects from Sanjay Sinha's solution.
    Then choose the menu [Objects] -> [Reassign].
    You have to insert the new package only once in the popup and all the marked objects are changed.
    Regards,
    Stefan
    Message was edited by: Stefan Gerschler

  • Is Externalizable is a marker interface???

    hey,
    What is a marker interface??? it should not have any methods, isn't it???then why is that the interface externalizable called as a marker ???
    can anybody tell me the reason??

    What is a marker interface??? An interface that marks objects that have a certain, usually non-enforcible behaviour. Like Serializable marks objects that are supposed to be defined in a way that they can be serielaized, i.e. no non-transient, non-serializable members.
    it should not have any
    methods, isn't it???It often doesn't, but I don't see why that's a necessity.
    then why is that the interface
    externalizable called as a marker ???
    can anybody tell me the reason??See above, who said it's not allowed to?

Maybe you are looking for

  • Bank program

    Hey guys i'm making a bank program for my calss and i wanna see what you guys think. My compiler says that I only have two errors but I do not think this is the case. It says i have '{' expected line 29 '}' expected line 164 I'm confused on this so i

  • Mouse gestures enabled by default???

    Hey I'm getting kinda annoyed when I move my mouse the wrong way and firefox goes to the last page I visited. Now I have no idea how this mouse gesture got there, but I'd like to deactivate it. Its not a firefox gesture as far as I can tell and I nev

  • Copy/Create local copy queries in Production

    We´ve closed our Production environment for changes. The problem is that some users must have access to copy queries/workbooks (that were transported from DEV) to a local copy ($TMP), in order to make changes to the structure of these copied queries.

  • When using large text my lines overpal, how can I increase the line spacing?

    When using large text my lines overpal, how can I increase the line spacing?

  • Memory allocation profiling - where is it going?

    I am profiling a Swing application that seems to be using more memory than expected - Windows task manager (which I don't necessarily trust) reports that the Java process hogs 400MB+ of memory. However, profiling with JProfiler indicates that heap us