Memory Efficiency of BufferedImage and ImageIO

This thread discusses the memory efficiency of BufferedImage and ImageIO. I also like to know whether if there's possible memory leak in BufferedImage / ImageIO, or just that the result matches the specifications. Any comments are welcomed.
My project uses a servlet to create appropriate image tiles (in PNG format) that fits the specification of google map, from images stored in a database. But it only takes a few images to make the system out of heap memory. Increasing the initial heap memory just delays the problem. So it is not acceptable.
To understand why that happens, I write a simple code to check the memory usage of BufferedImage and ImageIO. The code simply keeps making byte arrays from the same image until it is running out of the heap memory.
Below shows how many byte arrays it can create:
1M jpeg picture (2560*1920):
jpeg = 123
png = 3
318K png picture (1000*900):
jpeg = 1420
png = 178
Notice that the program runs out of memory with only 3 PNG byte arrays for the first picture!!!! Is this normal???
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.geom.*;
import javax.imageio.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class Test {
     public static void main(String[] args) {
          Collection images = new ArrayList();
          for (;;) {
               try {
                    BufferedImage img = ImageIO.read(new File("PTHNWIDE.png"));
                    img.flush();
                    ByteArrayOutputStream out =
                         new ByteArrayOutputStream();
                    ImageIO.write(img, "png", out); // change to "jpeg" for jpeg
                    images.add(out.toByteArray());
                    out.close();
               } catch (OutOfMemoryError ome) {
                    System.err.println(images.size());
                    throw ome;
               } catch (Exception exc) {
                    exc.printStackTrace();
                    System.err.println(images.size());
}

a_silent_lamb wrote:
1. For the testing program, I just use the default VM setting, ie. 64M memory so it can run out faster. For server, the memory would be at least 256M.You might want to increase the heap size.
2. Do you mean it's 2560*1920*24bits when loaded? Of course.
That's pretty (too) large for my server usage, Well you have lots of image data
because it will need to process large dimension pictures (splitting each into set of 256*256 images). Anyway to be more efficient?Sure, use less colors :)

Similar Messages

  • Need help: BufferedImage and zooming

    please help me understand what i am doing wrong. i am having a hard time understanding the concept behind BufferedImage and zooming. the applet code loads an image as its background. after loading, you can draw line segments on it. but when i try to zoom in, the image in the background remains the same in terms of size, line segments are the only ones that are being zoomed, and the mouse coordinates are confusing.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.BufferedImage;
    import java.awt.geom.*;
    import javax.swing.*;
    import javax.imageio.*;
    import java.io.*;
    import java.util.ArrayList;
    import java.io.IOException;
    import java.net.URL;
    import java.awt.image.*;
    public class Testing extends JApplet {
         private String url;
         private Map map;
         public void init() {
         public void start()
              url = "http://localhost/image.gif";
                  map = new Map(url);
                 getContentPane().add(map, "Center");
                 validate();
                 map.validate();
    class Map extends JPanel implements MouseListener, MouseMotionListener{
         private Image image;
         private ArrayList<Point2D> points;
         private ArrayList<Line2D> lineSegment;
         private Point2D startingPoint;
         private int mouseX;
         private int mouseY;
         private BufferedImage bimg;
         private AffineTransform xform;
         private AffineTransform inverse;
         private double zoomFactor = 1;
         public Map(String url)
                         super();
              //this.image = image;
              try
                   image = ImageIO.read(new URL(url));
              catch(Exception e)
              Insets insets = getInsets();
              xform = AffineTransform.getTranslateInstance(insets.left, insets.top);
              xform.scale(zoomFactor,zoomFactor);
              try {
                   inverse = xform.createInverse();
              } catch (NoninvertibleTransformException e) {
                   System.out.println(e);
              points = new ArrayList();
              startingPoint = new Point();
              bimg = new BufferedImage(this.image.getWidth(this), this.image.getHeight(this), BufferedImage.TYPE_INT_ARGB);
              repaintBImg();
              addMouseListener(this);
              addMouseMotionListener(this);
         public void paintComponent(Graphics g)
            Graphics2D g2d = (Graphics2D)g;
              g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
              g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING , RenderingHints.VALUE_RENDER_QUALITY ));
            bimg = (BufferedImage)image;
            g2d.drawRenderedImage(bimg, xform);
            if(!points.isEmpty())
                 for(int i=0; i<points.size(); i++)
                      if(i > 0)
                           drawLineSegment(g2d,points.get(i-1),points.get(i));
                      drawPoint(g2d, points.get(i));
            if(startingPoint != null)
                drawTempLine(startingPoint, g2d);
            else
                mouseX = 0;
                mouseY = 0;
         private void repaintBImg()
              bimg.flush();
              Graphics2D g2d = bimg.createGraphics();
              g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));
              g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING , RenderingHints.VALUE_RENDER_QUALITY ));
            g2d.drawRenderedImage(bimg, xform);
            g2d.dispose();
         private void drawPoint(Graphics2D g2d, Point2D p)
            int x = (int)(p.getX() * zoomFactor);
            int y = (int)(p.getY() * zoomFactor);
            int w = (int)(13 * zoomFactor);
            int h = (int)(13 * zoomFactor);
              g2d.setColor(Color.ORANGE);
              g2d.setStroke(new BasicStroke(1.0F));
            g2d.fillOval(x - w / 2, y - h / 2, w, h);
            g2d.setColor(Color.BLACK);
            g2d.drawOval(x - w / 2, y - h / 2, w - 1, h - 1);
         private void drawLineSegment(Graphics2D g2d, Point2D p1, Point2D p2)
              double x1 = p1.getX() * zoomFactor;
                 double y1 = p1.getY() * zoomFactor;
                 double x2 = p2.getX() * zoomFactor;
                 double y2 = p2.getY() * zoomFactor;
                 g2d.setColor(Color.RED);
                 g2d.setStroke(new BasicStroke(3.0F));
                 g2d.draw(new java.awt.geom.Line2D.Double(x1, y1, x2, y2));
             private void drawTempLine(Point2D p, Graphics2D g2d)
                 int startX = (int)(p.getX() * zoomFactor);
                 int startY = (int)(p.getY() * zoomFactor);
                 if(mouseX != 0 && mouseY != 0)
                         g2d.setColor(Color.RED);
                          g2d.setStroke(new BasicStroke(2.0F));
                          g2d.drawLine(startX, startY, mouseX, mouseY);
         public void mouseClicked(MouseEvent e)
         public void mouseDragged(MouseEvent e)
              mouseX = (int)(e.getX()*zoomFactor);
              mouseY = (int)(e.getY()*zoomFactor);
              repaint();
         public void mousePressed(MouseEvent e)
              if(e.getButton() == 1)
                   points.add(inverse.transform(e.getPoint(), null));
                   if(points.size() > 0)
                        startingPoint = points.get(points.size()-1);
                        mouseX = mouseY = 0;
                   repaint();
              else if(e.getButton() == 2)
                   zoomFactor = zoomFactor + .05;
                   repaintBImg();
              else if(e.getButton() == 3)
                   zoomFactor = zoomFactor - .05;
                   repaintBImg();
         public void mouseReleased(MouseEvent e)
              if(e.getButton() == 1)
                   points.add(inverse.transform(e.getPoint(), null));
              repaint();
         public void mouseEntered(MouseEvent mouseevent)
         public void mouseExited(MouseEvent mouseevent)
         public void mouseMoved(MouseEvent mouseevent)
    }Message was edited by:
    hardc0d3r

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.BufferedImage;
    import java.awt.geom.*;
    import java.io.*;
    import java.net.URL;
    import java.util.*;
    import javax.imageio.*;
    import javax.swing.*;
    public class ZoomTesting extends JApplet {
        public void init() {
            //String dir = "file:/" + System.getProperty("user.dir");
            //System.out.printf("dir = %s%n", dir);
            String url = "http://localhost/image.gif";
                         //dir + "/images/cougar.jpg";
            MapPanel map = new MapPanel(url);
            getContentPane().add(map, "Center");
        public static void main(String[] args) {
            JApplet applet = new ZoomTesting();
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(applet);
            f.setSize(400,400);
            f.setLocation(200,200);
            applet.init();
            f.setVisible(true);
    class MapPanel extends JPanel implements MouseListener, MouseMotionListener {
        private BufferedImage image;
        private ArrayList<Point2D> points;
        private Point2D startingPoint;
        private int mouseX;
        private int mouseY;
        private AffineTransform xform;
        private AffineTransform inverse;
        RenderingHints hints;
        private double zoomFactor = 1;
        public MapPanel(String url) {
            super();
            try {
                image = ImageIO.read(new URL(url));
            } catch(Exception e) {
                System.out.println(e.getClass().getName() +
                                   " = " + e.getMessage());
            Map<RenderingHints.Key, Object> map =
                        new HashMap<RenderingHints.Key, Object>();
            map.put(RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
            map.put(RenderingHints.KEY_RENDERING,
                    RenderingHints.VALUE_RENDER_QUALITY);
            hints = new RenderingHints(map);
            setTransforms();
            points = new ArrayList<Point2D>();
            startingPoint = new Point();
            addMouseListener(this);
            addMouseMotionListener(this);
        private void setTransforms() {
            Insets insets = getInsets();
            xform = AffineTransform.getTranslateInstance(insets.left, insets.top);
            xform.scale(zoomFactor,zoomFactor);
            try {
                inverse = xform.createInverse();
            } catch (NoninvertibleTransformException e) {
                System.out.println(e);
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D)g;
            g2d.setRenderingHints(hints);
            g2d.drawRenderedImage(image, xform);
            if(!points.isEmpty()) {
                for(int i=0; i<points.size(); i++) {
                    if(i > 0)
                        drawLineSegment(g2d,points.get(i-1),points.get(i));
                    drawPoint(g2d, points.get(i));
            if(startingPoint != null) {
                drawTempLine(startingPoint, g2d);
            } else {
                mouseX = 0;
                mouseY = 0;
        private void drawPoint(Graphics2D g2d, Point2D p) {
            int x = (int)(p.getX() * zoomFactor);
            int y = (int)(p.getY() * zoomFactor);
            int w = (int)(13 * zoomFactor);
            int h = (int)(13 * zoomFactor);
            g2d.setColor(Color.ORANGE);
            g2d.setStroke(new BasicStroke(1.0F));
            g2d.fillOval(x - w / 2, y - h / 2, w, h);
            g2d.setColor(Color.BLACK);
            g2d.drawOval(x - w / 2, y - h / 2, w - 1, h - 1);
        private void drawLineSegment(Graphics2D g2d, Point2D p1, Point2D p2) {
            double x1 = p1.getX() * zoomFactor;
            double y1 = p1.getY() * zoomFactor;
            double x2 = p2.getX() * zoomFactor;
            double y2 = p2.getY() * zoomFactor;
            g2d.setColor(Color.RED);
            g2d.setStroke(new BasicStroke(3.0F));
            g2d.draw(new java.awt.geom.Line2D.Double(x1, y1, x2, y2));
        private void drawTempLine(Point2D p, Graphics2D g2d) {
            int startX = (int)(p.getX() * zoomFactor);
            int startY = (int)(p.getY() * zoomFactor);
            if(mouseX != 0 && mouseY != 0) {
                g2d.setColor(Color.RED);
                g2d.setStroke(new BasicStroke(2.0F));
                g2d.drawLine(startX, startY, mouseX, mouseY);
        public void mouseClicked(MouseEvent e) {}
        public void mouseDragged(MouseEvent e) {
            mouseX = (int)(e.getX()*zoomFactor);
            mouseY = (int)(e.getY()*zoomFactor);
            repaint();
        public void mousePressed(MouseEvent e) {
            if(e.getButton() == 1) {
                points.add(inverse.transform(e.getPoint(), null));
                if(points.size() > 0) {
                    startingPoint = points.get(points.size()-1);
                    mouseX = mouseY = 0;
            } else if(e.getButton() == 2) {
                zoomFactor = zoomFactor + .05;
                setTransforms();
            } else if(e.getButton() == 3) {
                zoomFactor = zoomFactor - .05;
                setTransforms();
            repaint();
        public void mouseReleased(MouseEvent e) {
            if(e.getButton() == 1) {
                points.add(inverse.transform(e.getPoint(), null));
            repaint();
        public void mouseEntered(MouseEvent mouseevent) {}
        public void mouseExited(MouseEvent mouseevent) {}
        public void mouseMoved(MouseEvent mouseevent) {}
    }

  • Building Query in Pre-Query. How to make it more Memory Efficient

    Hello all,
    I have a form with 2 Data Blocks.
    First Block is used for giving query Parameters and second one returns the results based on a View.
    I build the Select Clause in the pre-query based on the Parameters. So every time I have a Different Query.
    Could that create problem in the Database Server due to parsing queries again and again?
    Would using a Different approach (i.e. ref Cursors) be more memory Efficient?
    Thanks

    The pre-query is quite Large so I am pasting only a part of the Code (the rest of it Is Identical).
    In the selects v is the alias of the View of the Second Data Block.
    The :qf_ bind variables are fields of the First block where I give the Parameters.
                   IF :QF_IS_DISPLAYED=1 THEN
                   L_WHERE := L_WHERE || ' AND V.IS_DISPLAYED =''1''';
                   END IF;
                   IF :qf_colour IS NOT NULL THEN
                   L_WHERE := L_WHERE || ' AND item_colour=''' ||:qf_colour ||'''';
                   END IF;
         IF :qf_product_item_colour IS NOT NULL THEN
                   L_WHERE := L_WHERE || ' AND product_item_colour=''' ||:qf_product_item_colour ||'''';
         END IF;
         IF :qf_product_length IS NOT NULL THEN
                   L_WHERE := L_WHERE || ' AND product_length=''' ||:qf_product_length ||'''';
         END IF;
                   IF :qf_apf_batch_id IS NOT NULL THEN
                   L_WHERE := L_WHERE || ' AND apf_batch_id=' ||:qf_apf_batch_id;
                   END IF;
                        if :qf_prod_resource is not null then
                        L_WHERE := L_WHERE ||' AND v.resources = ''' ||:qf_prod_resource ||'''';
                        end if;
                        if :qf_customer_number is not null then
                        L_WHERE := L_WHERE || ' AND FACTORY_ORDER_ID IN (SELECT FA.FACTORY_ORDER_ID
                                                                                                                                                     FROM OE_ORDER_HEADERS_ALL OH,
                                                                                                                                                                    RA_CUSTOMERS RA,
                                                                                                                                                                    XXSC_DEMAND_LINES DL,
                                                                                                                                                                    XXSC_FACTORY_ORDERS FA
                                                                                                                                                     WHERE      OH.SOLD_TO_ORG_ID = RA.CUSTOMER_ID
                                                                                                                                                     AND      DL.SOURCE_HEADER_ID = OH.HEADER_ID
                                                                                                                                                     AND          DL.FACTORY_ORDER_ID = FA.FACTORY_ORDER_ID
                                                                                                                                                     AND               RA.CUSTOMER_NUMBER = ''' ||:qf_customer_number ||''')';
                        end if;

  • Memory efficient conversion of cmyk jpeg to rgb jpeg

    I'm looking for a memory efficient way to convert a jpeg image from cmyk to rgb.
    I can't load the whole image in memory. The image is too big (I already have a lot of ram).
    Do you know how to do it? Would you share it with us?
    At the end of this thread (http://forum.java.sun.com/thread.jspa?messageID=9625078) I show how to do it when loading the whole image in memory. But that's not what I'm looking for. May be you can find a better way to achieve a similar output.

    Can you show me how it would look like? 1. SInce CMYK is 4 bytes per pixel the byte array size is w*h*4 which is bigger than w*h*3, so there is no problem to use the same array.
    As you can see from this line:raster = Raster.createInterleavedRaster(new DataBufferByte(rgb, rgb.length), w, h, w * 3, 3, new int[]{0, 1, 2}, null);You are passing the size of the array to the DataBufferByte constructor and also to the createInterleavedRaster, so you can use an array with bigger size and just pass w*h*3 instread of rbg.length to DataBufferByte constructor.
    2. You can acces the buffer directly instead of using raster.getSamples which creates a new array and places the values in it:
    Instead of this:
    int c = 255 - C;
    int m = 255 - M[i];
    int y = 255 - Y[i];
    int k = 255 - K[i];
    Do this:
    int c = 255 - data[i*4];
    int m = 255 - data[i*4+1];
    int y = 255 - data[i*4+2];
    int k = 255 - data[i*4+3];

  • Write to bufferedimage and compatibleimages

    hey
    you maybe remember that I made a breakout game, i use compatibleimages in fullscreen and draw them alot of times..300+
    someone told me to use a bufferedImage and draw the image to this bufferedImage first then just blit the bufferedImage.
    is this correct?will that result in 1 blit instead of 300? and is if faster? the game has 70 fps now.

    hmm, the answer can be either yes or no.
    edit ESSAY ALERT :D
    if hardware acceleration is supported, your current way of doing it will be quicker.
    If hardware acceleration is not supported, reducing the number of blits may well increase speed.
    heres an outline of what the processes involve :-
    When hardware acceleration is supported
    A) Blitting each block seperately
    1) the framebuffer (back & front buffers) are both stored in vram.
    2) each blocks image is stored in main memory, and cached in vram.
    3) any blit operations are vram->vram, hence have near zero execution cost.
    B) Blitting each block to an intermediary image (when a change occurs), then blitting this intermediary image to the frame buffer.
    1) the frame buffer (back & front buffers) are both stored in vram.
    2) each blocks image is stored in main memory, and cached in vram. (though the vram cached version will never be used)
    3) the intermediary image is stored in main memory, and cached in vram.
    4) the regular blit operation will be
    intermediary image->frame buffer
    since both of these are in vram, the cost is near zero.
    5) when the intermediary image changes, the blit operation is
    blocks image->intermediary image
    since both these images have their original image stored in main memory,
    this blit is a main mem.->main mem. hence, will incur a speed cost.
    6) ALSO, when the intermediary image changes, the version cached in vram
    becomes invalid, and the image needs to be re-cached.
    This is a main mem.->vram copy, which also incurs a cost.
    If the intermediary image changes often, this will result in a drop in framerate each time a change occurs.
    (inconsistant framerates are VERY bad from a human perception POV)
    C) use a VolatileImage object for the intermediary image
    This is the best solution, as it removes all main mem->vram blits, and also reduces the vram->vram blits to an absolute minimum.
    However,
    the real speed difference between 300 vram blits
    and 1vram blit(+1 vram blit each time a change occurs)
    is absolutely minimal.
    (infact, because this isnt your bottleneck the speed difference will be zero)
    When hardware acceleration is NOT supported
    A) Blitting each block seperately
    1) the back buffer is in main mem. the front buffer is in vram.
    2) each blocks image is stored in main memory.
    3) each block blit is main mem.->main mem. (costly)
    PLUS the back buffer has to be blitted onto the front buffer, this is a main mem.->vram blit.
    B) Blitting each block to an intermediary image (when a change occurs), then blitting this intermediary image to the frame buffer.
    1) the back buffer is in main mem. the front buffer is in vram.
    2) each blocks image is stored in main memory.
    3) the intermediary image is stored in main mem.
    4) the regular blit operation will be
    intermediary image->back buffer
    this is a single main mem.->main mem. blit.
    5) also, each time the intermediary image changes,
    you will get an extra main mem->main mem blit.
    6) you also have the obligatory back buffer->front buffer blit
    Comparing the 2 methods when there is no hardware acceleration available
    you will see that the 2nd technique does indeed require fewer blits.
    (instead of 300 every frame, your doing 1+[1 each time a change occurs])
    So, now your left with the question, 'which do I use?'
    well, its totally down to whether you expect hardware acceleration to be available or not :S
    The ideal solution is to write 2 versions,
    not very 'Java', but its the way the world is :[                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Memory efficiency LOW !"!"! :O

    Well.. in my hunt for explaining my low system performance, i noticed that in sisoft sandra 2002 sp1 that my menory efficiency was wery low.
    int buffered memory efficiency = 88 (1924 Mb/sec)
    float buffered memory efficiency = 74 (1603Mb/sec)
    I controled them with a friend, having the same system, except that he have asus a7v333 aru raid
    he has
    int buffered memory efficiency = 96
    float buffered memory efficiency = 93
    both of us uses the standart setup in bios..
    my system is:
    2000+
    Msi kt3 ultra
    512 Mb pc 2700
    palit geforce 4 ti 4200
    3com 3c505
    2 * 80 gig maxtor fluid (133)
    any suggestions

    Nope... it's bios settings..
    I sat them to default settings, and then started with changing the ram settings..  now my efficiency is 95%/90%..  so..  work at it..  there is some performance to catch..

  • Memory Problem with SEt and GET parameter

    hi,
    I m doing exits. I have one exit for importing and another one for changing parameter.
    SET PARAMETER exit code is ....
    *data:v_nba like eban-bsart,
           v_nbc like eban-bsart,
           v_nbo like eban-bsart.
           v_nbc = 'CAPX'.
           v_nbo = 'OPEX'.
           v_nba = 'OVH'.
    if im_data_new-werks is initial.
      if im_data_new-knttp is initial.
        if im_data_new-bsart = 'NBC' or im_data_new-bsart = 'SERC' or im_data_new-bsart = 'SERI'
           or im_data_new-bsart = 'SER' or im_data_new-bsart = 'SERM' or im_data_new-bsart = 'NBI'.
          set parameter id 'ZC1' field v_nbc.
        elseif im_data_new-bsart = 'NBO' or im_data_new-bsart = 'NBM' or im_data_new-bsart = 'SERO'.
          set parameter id 'ZC2' field v_nbo.
        elseif im_data_new-bsart = 'NBA' or im_data_new-bsart = 'SERA'.
          set parameter id 'ZC3' field  v_nba.
        endif.
      endif.
    endif. *
    and GET PARAMETER CODE IS....
      get parameter id 'ZC1' field c_fmderive-fund.
      get parameter id 'ZC2' field c_fmderive-fund.
      get parameter id 'ZC3' field c_fmderive-fund.
    FREE MEMORY ID 'ZC1'.
      FREE MEMORY ID 'ZC2'.
       FREE MEMORY ID 'ZC3'.
    In this code i m facing memory problem.
    It is not refreshing the memory every time.
    So plz give me proper solution.
    Its urgent.
    Thanks
    Ranveer

    Hi,
       I suppose you are trying to store some particular value in memory in one program and then retieve it in another.
    If so try using EXPORT data TO MEMORY ID 'ZC1'. and IMPORT data FROM MEMORY ID 'ZC1'.
    To use SET PARAMETER/GET PARAMETER the specified parameter name should be in table TPARA. Which I don't think is there in your case.
    Sample Code :
    Data declarations for the function codes to be transferred
    DATA : v_first  TYPE syucomm,
           v_second TYPE syucomm.
    CONSTANTS : c_memid TYPE char10 VALUE 'ZCCBPR1'.
    Move the function codes to the program varaibles
      v_first  = gv_bdt_fcode.
      v_second = sy-ucomm.
    Export the function codes to Memory ID
    EXPORT v_first
           v_second TO MEMORY ID c_memid.        "ZCCBPR1  --- Here you are sending the values to memory
    Then retrieve it.
    Retrieve the function codes from the Memory ID
      IMPORT v_first  TO v_fcode_1
             v_second TO v_fcode_2
      FROM MEMORY ID c_memid.                                   "ZCCBPR1
      FREE MEMORY ID c_memid.                                   "ZCCBPR1
    After reading the values from memory ID free them your problem should be solved.
    Thanks
    Barada
    Edited by: Baradakanta Swain on May 27, 2008 10:20 AM

  • My macbook pro model mid 2009 is running slow. free memory is 35 mbs and inactive memory is  1.36 gb with a total of 5 gb RAM memory

    Problem description:
    too much inactive memory 1.87 gb and free memory only 35 mb
    EtreCheck version: 2.1.1 (104)
    Report generated 10 December 2014 3:30:26 pm IST
    Hardware Information: ℹ️
      MacBook Pro (13-inch, Mid 2009) (Verified)
      MacBook Pro - model: MacBookPro5,5
      1 2.26 GHz Intel Core 2 Duo CPU: 2-core
      5 GB RAM Upgradeable
      BANK 0/DIMM0
      1 GB DDR3 1067 MHz ok
      BANK 1/DIMM0
      4 GB DDR3 1067 MHz ok
      Bluetooth: Old - Handoff/Airdrop2 not supported
      Wireless:  en1: 802.11 a/b/g/n
    Video Information: ℹ️
      NVIDIA GeForce 9400M - VRAM: 256 MB
      Color LCD 1280 x 800
    System Software: ℹ️
      OS X 10.10.1 (14B25) - Uptime: 4:42:54
    Disk Information: ℹ️
      WDC WD5000LPVT-80G33T2 disk0 : (500.11 GB)
      S.M.A.R.T. Status: Verified
      EFI (disk0s1) <not mounted> : 210 MB
      [redacted] (disk0s2) / : 499.25 GB (142.01 GB free)
      Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
      HL-DT-ST DVDRW  GS23N 
    USB Information: ℹ️
      Apple Inc. Built-in iSight
      Apple Internal Memory Card Reader
      Apple Inc. Apple Internal Keyboard / Trackpad
      Apple Computer, Inc. IR Receiver
      Apple Inc. BRCM2046 Hub
      Apple Inc. Bluetooth USB Host Controller
    Gatekeeper: ℹ️
      Anywhere
    Kernel Extensions: ℹ️
      /System/Library/Extensions
      [not loaded] com.driver.KUSBModemCDC07 (4.0.2) [Support]
      [not loaded] com.driver.KUSBModemDataA07 (4.0.2) [Support]
    Startup Items: ℹ️
      JHHPortDetect: Path: /Library/StartupItems/JHHPortDetect
      Sudochmod: Path: /Library/StartupItems/Sudochmod
      Startup items are obsolete in OS X Yosemite
    Launch Agents: ℹ️
      [not loaded] com.adobe.AAM.Updater-1.0.plist [Support]
      [running] com.bjango.istatmenusagent.plist [Support]
      [loaded] com.google.keystone.agent.plist [Support]
      [loaded] com.oracle.java.Java-Updater.plist [Support]
      [running] jp.co.canon.CUPSCAPT.BG.plist [Support]
      [loaded] org.macosforge.xquartz.startx.plist [Support]
    Launch Daemons: ℹ️
      [loaded] com.adobe.fpsaud.plist [Support]
      [invalid?] com.adobe.SwitchBoard.plist [Support]
      [running] com.bjango.istatmenusdaemon.plist [Support]
      [loaded] com.google.keystone.daemon.plist [Support]
      [loaded] com.microsoft.office.licensing.helper.plist [Support]
      [loaded] com.oracle.java.Helper-Tool.plist [Support]
      [loaded] com.oracle.java.JavaUpdateHelper.plist [Support]
      [loaded] org.macosforge.xquartz.privileged_startx.plist [Support]
      [loaded] org.tcpdump.chmod_bpf.plist [Support]
    User Launch Agents: ℹ️
      [loaded] com.adobe.ARM.[...].plist [Support]
    User Login Items: ℹ️
      iTunesHelper Application (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
      Caffeine Application (/Applications/Caffeine.app)
      AdobeResourceSynchronizer ApplicationHidden (/Applications/Adobe Reader.app/Contents/Support/AdobeResourceSynchronizer.app)
      Dropbox Application (/Applications/Dropbox.app)
      HyperDock Helper UNKNOWN (missing value)
    Internet Plug-ins: ℹ️
      o1dbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
      Default Browser: Version: 600 - SDK 10.10
      AdobePDFViewerNPAPI: Version: 11.0.09 - SDK 10.6 [Support]
      FlashPlayer-10.6: Version: 15.0.0.246 - SDK 10.6 [Support]
      Flash Player: Version: 15.0.0.246 - SDK 10.6 Mismatch! Adobe recommends 16.0.0.235
      QuickTime Plugin: Version: 7.7.3
      googletalkbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
      SharePointBrowserPlugin: Version: 14.0.0 [Support]
      AdobePDFViewer: Version: 11.0.09 - SDK 10.6 [Support]
      zako: Version: zako 1.0.0.0 - SDK 10.8 [Support]
      iPhotoPhotocast: Version: 7.0 - SDK 10.8
      JavaAppletPlugin: Version: Java 7 Update 71 Check version
    User internet Plug-ins: ℹ️
      BlueStacks Install Detector: Version: Unknown
    Safari Extensions: ℹ️
      AdBlock
      ClickToFlash
      Awesome Screenshot
      Breaking News
      The New York Times
    3rd Party Preference Panes: ℹ️
      Flash Player  [Support]
      Java  [Support]
    Time Machine: ℹ️
      Skip System Files: NO
      Mobile backups: ON
      Auto backup: YES
      Volumes being backed up:
      Arupreet: Disk size: 499.25 GB Disk used: 357.24 GB
      Destinations:
      CHIKKI [Local]
      Total size: 331.41 GB
      Total number of backups: 2
      Oldest backup: 2014-06-10 13:36:00 +0000
      Last backup: 2014-09-08 13:57:40 +0000
      Size of backup disk: Too small
      Backup size 331.41 GB < (Disk used 357.24 GB X 3)
    Top Processes by CPU: ℹ️
          8% python
          3% WindowServer
          3% uTorrent
          2% SystemUIServer
          0% mtmfs
    Top Processes by Memory: ℹ️
      1.29 GB JavaAppLauncher
      123 MB SystemUIServer
      102 MB iStatMenusDaemon
      86 MB com.apple.WebKit.WebContent
      81 MB WindowServer
    Virtual Memory Information: ℹ️
      50 MB Free RAM
      1.97 GB Active RAM
      1.90 GB Inactive RAM
      673 MB Wired RAM
      6.70 GB Page-ins
      8 MB Page-outs
    Diagnostics Information: ℹ️
      Dec 10, 2014, 10:48:11 AM Self test - passed
      Dec 9, 2014, 02:54:15 AM VLC_2014-12-09-025415_Arus-MacBook-Pro.crash

    Not sure if using Terminal would help:
    Launch Activity Monitor
    Select Memory tab
    Launch Terminal
    type sudo purge
    password
    10-15 sec later Terminal should refresh and show freed memory & cache

  • How Do i Find out where all My Memory is Being Used and to reduce it

    How do i Find out where all my Memory is Being used and whats the best way to reduce it.
    Cheers Madmax.14

    Try DupeGuru to find duplicate files.
    Omni Disk Sweeper is good and so is Grand Perspective
    Chris

  • Photoshop CS6 memory leak when idle and nothing open

    Photoshop CS6 runs away with memory after being used and then going idle. If I open up PS and leave it, it will be ok but as soon as I open any file it will go up in memory usage (which is normal) but when I close all files and hide PS the memory will stay high never goes back down. When I close PS and re-open (no files open) again it idles at 300Mb memory but when I open a file then close it and then hide/idle PS it raises and stays around 1.25-1.5 GB if not more.
    I have tried to Purge All, and even hide all menus to no avail. I have even tried to close Suitcase (eleminiate any font issues) and still same problem. I am running PS bone stock, no extra plug-ins. 
    Any ideas on why it would be doing this would be greatly appreciated!
    My Computer:
    Photoshop 13.0.1
    MacBookPro
    OS 10.6.8
    CPU: 2.66 GHz Intel Core 2 Duo
    Mem: 4 GB 1067 MHz DDR3
    HD: 300GB (30GB Free)

    Photoshop is not supposed to free memory when you close documents -- that's normal, because the memory gets reused.
    Yes, opening a file makes the memory usage go up - because space is needed for the document and it's window.
    None of what you said describes a leak, and sounds like perfectly normal behavior.

  • When I tried to load some mp3 files on to my samsung brightside I looked under card memory and my songs were there but when I clicked on my music it said no memory available remove files and I have an 8 gb micro sd card in and there is nothing else on it

    When I tried to load some mp3 files on to my samsung brightside I looked under card memory and my songs were there but when I clicked on my music it said no memory available remove files and I have an 8 gb micro sd card in and there is nothing else on it

    Whew.... got it to work after days of trying to figure.
    Got answer here:  http://forums.macrumors.com/showthread.php?t=1450821 from zblaze.
    Wiped phone completely, restored as NEW iphone through itunes.  Checked 'Sync all Music'.
    After that happens you can restore from backup.

  • Finer takes too much memory on yosemite! and keeps taking more and more until it gets the machine to it's knees! What to do???

    Right after getting yosemite on my Macbook Pro with 16GB memory and SSD HDD. I find that after working for 30 minutes or so that the machine gets really slow, even switching between screens gets kinda of sluggish!!!
    So i looked into the Activity Monitor and to my surprise i find that Finder is taking more than 4GB of memory just by itself and high percentage of CPU.
    If i quit it, the machine goes back to being normal, but then Finder will restart, and again after 30 minutes or so, it does the same thing over and over.
    I am sure that it's some kind of a bug, but i don't know where to start to solve this problem!!!
    This never happened on previous OSXs.
    If anyone have a hint it will be appreciated.
    Thanks,

    Problem description:
    Finder keeps taking up too much memory thus slowing down the machine to it’s knees.
    MacBook Pro 16GB Ram, SSD HD, AMD 1024GB
    EtreCheck version: 2.1.2 (105)
    Report generated December 11, 2014 at 10:44:31 PM GMT+2
    Hardware Information: ℹ️
      MacBook Pro (17-inch, Late 2011) (Verified)
      MacBook Pro - model: MacBookPro8,3
      1 2.4 GHz Intel Core i7 CPU: 4-core
      16 GB RAM Upgradeable
      BANK 0/DIMM0
      8 GB DDR3 1333 MHz ok
      BANK 1/DIMM0
      8 GB DDR3 1333 MHz ok
      Bluetooth: Old - Handoff/Airdrop2 not supported
      Wireless:  en1: 802.11 a/b/g/n
    Video Information: ℹ️
      Intel HD Graphics 3000 - VRAM: 512 MB
      AMD Radeon HD 6770M - VRAM: 1024 MB
      Color LCD 1920 x 1200
    System Software: ℹ️
      OS X 10.10.1 (14B25) - Uptime: 4 days 1:40:55
    Disk Information: ℹ️
      Crucial_CT960M500SSD1 disk0 : (960.2 GB)
      S.M.A.R.T. Status: Verified
      EFI (disk0s1) <not mounted> : 210 MB
      Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
      Macintosh HD (disk1) / : 958.97 GB (319.19 GB free)
      Core Storage: disk0s2 959.34 GB Online
      MATSHITADVD-R   UJ-8A8 
    USB Information: ℹ️
      Western Digital Elements 10A8 1 TB
      S.M.A.R.T. Status: Verified
      EFI (disk2s1) <not mounted> : 210 MB
      MacProBackup (disk2s2) /Volumes/MacProBackup : 999.83 GB (280.78 GB free)
      Apple Computer, Inc. IR Receiver
      Apple Inc. FaceTime HD Camera (Built-in)
      Apple Inc. Apple Internal Keyboard / Trackpad
      Apple Inc. BRCM2070 Hub
      Apple Inc. Bluetooth USB Host Controller
    Thunderbolt Information: ℹ️
      Apple Inc. thunderbolt_bus
    Configuration files: ℹ️
      /etc/hosts - Count: 1
    Gatekeeper: ℹ️
      Mac App Store and identified developers
    Kernel Extensions: ℹ️
      /Applications/Toast 11 Titanium/Spin Doctor.app
      [not loaded] com.hzsystems.terminus.driver (4) [Support]
      /System/Library/Extensions
      [loaded] com.Cycling74.driver.Soundflower (1.6.2 - SDK 10.6) [Support]
      [not loaded] com.ZTE.driver.ZTEUSBCDCACMData (1.3.6) [Support]
      [not loaded] com.ZTE.driver.ZTEUSBMassStorageFilter (1.3.6) [Support]
      [not loaded] com.devguru.driver.SamsungComposite (1.2.44 - SDK 10.6) [Support]
      [not loaded] com.roxio.BluRaySupport (1.1.6) [Support]
      [not loaded] com.wacom.kext.pentablet (5.2.1) [Support]
      /System/Library/Extensions/ssuddrv.kext/Contents/PlugIns
      [not loaded] com.devguru.driver.SamsungACMControl (1.2.44 - SDK 10.6) [Support]
      [not loaded] com.devguru.driver.SamsungACMData (1.2.44 - SDK 10.6) [Support]
      [not loaded] com.devguru.driver.SamsungMTP (1.2.44 - SDK 10.5) [Support]
      [not loaded] com.devguru.driver.SamsungSerial (1.2.44 - SDK 10.6) [Support]
      /Users/[redacted]/Library/Services/ToastIt.service/Contents/MacOS
      [not loaded] com.roxio.TDIXController (2.0) [Support]
    Startup Items: ℹ️
      HWNetMgr: Path: /Library/StartupItems/HWNetMgr
      MobileBrServ: Path: /Library/StartupItems/MobileBrServ
      StartOuc: Path: /Library/StartupItems/StartOuc
      Startup items are obsolete in OS X Yosemite
    Problem System Launch Agents: ℹ️
      [loaded] com.paragon.NTFS.notify.plist [Support]
    Launch Agents: ℹ️
      [invalid?] cn.com.zte.usbswapper.plist [Support]
      [not loaded] com.adobe.AAM.Updater-1.0.plist [Support]
      [loaded] com.adobe.CS4ServiceManager.plist [Support]
      [loaded] com.adobe.CS5ServiceManager.plist [Support]
      [loaded] com.divx.dms.agent.plist [Support]
      [running] com.divx.update.agent.plist [Support]
      [loaded] com.oracle.java.Java-Updater.plist [Support]
      [not loaded] com.teamviewer.teamviewer.plist [Support]
      [not loaded] com.teamviewer.teamviewer_desktop.plist [Support]
      [running] com.wacom.pentablet.plist [Support]
      [running] HWPortCfg.plist [Support]
    Launch Daemons: ℹ️
      [running] cn.com.zte.PPPMonitor.plist [Support]
      [loaded] com.adobe.fpsaud.plist [Support]
      [loaded] com.oracle.java.Helper-Tool.plist [Support]
      [not loaded] com.teamviewer.teamviewer_service.plist [Support]
    User Launch Agents: ℹ️
      [loaded] com.adobe.ARM.[...].plist [Support]
      [loaded] com.facebook.videochat.[redacted].plist [Support]
      [loaded] com.google.keystone.agent.plist [Support]
    User Login Items: ℹ️
      smcFanControl Application (/Applications/smcFanControl.app)
      gfxCardStatus Application (/Applications/gfxCardStatus.app)
      iTunesHelper ApplicationHidden (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
      KiesViaWiFiAgent UNKNOWNHidden (missing value)
      fuspredownloader ApplicationHidden (/Users/[redacted]/Library/Application Support/.FUS/fuspredownloader.app)
    Internet Plug-ins: ℹ️
      WacomNetscape: Version: 1.1.0-4 [Support]
      OVSHelper: Version: 1.1 [Support]
      Default Browser: Version: 600 - SDK 10.10
      Unity Web Player: Version: UnityPlayer version 4.6.0f2 - SDK 10.6 [Support]
      WacomSafari: Version: 1.1.0-4 [Support]
      AdobePDFViewerNPAPI: Version: 11.0.09 - SDK 10.6 [Support]
      FlashPlayer-10.6: Version: 15.0.0.246 - SDK 10.6 [Support]
      DivX Web Player: Version: 3.0 - SDK 10.5 [Support]
      Flash Player: Version: 15.0.0.246 - SDK 10.6 Mismatch! Adobe recommends 16.0.0.235
      QuickTime Plugin: Version: 7.7.3
      AdobePDFViewer: Version: 11.0.09 - SDK 10.6 [Support]
      JavaAppletPlugin: Version: Java 8 Update 25 Check version
    User internet Plug-ins: ℹ️
      Google Earth Web Plug-in: Version: 7.1 [Support]
    Safari Extensions: ℹ️
      iGetter Extension
    3rd Party Preference Panes: ℹ️
      Flash Player  [Support]
      Growl  [Support]
      Java  [Support]
      Paragon NTFS for Mac ® OS X  [Support]
    Bad Fonts: ℹ️
      Yelly.ttf: /Users/sambara/Library/Fonts/Yelly.ttf
      Friends.TTF: /Users/sambara/Library/Fonts/Friends.TTF
      Lush.ttf: /Users/sambara/Library/Fonts/Lush.ttf
      Margarosa.ttf: /Users/sambara/Library/Fonts/Margarosa.ttf
    Time Machine: ℹ️
      Skip System Files: NO
      Mobile backups: OFF
      Auto backup: YES
      Volumes being backed up:
      Macintosh HD: Disk size: 958.97 GB Disk used: 639.78 GB
      Destinations:
      MacProBackup [Local]
      Total size: 999.83 GB
      Total number of backups: 28
      Oldest backup: 2014-10-27 04:33:10 +0000
      Last backup: 2014-12-11 20:15:00 +0000
      Size of backup disk: Too small
      Backup size 999.83 GB < (Disk used 639.78 GB X 3)
    Top Processes by CPU: ℹ️
          8% com.apple.WebKit.Networking
          8% JavaApplicationStub
          7% WindowServer
          5% Unity
          1% coreaudiod
    Top Processes by Memory: ℹ️
      842 MB Finder
      584 MB iTunes
      529 MB com.apple.WebKit.Plugin.64
      447 MB Unity
      429 MB JavaApplicationStub
    Virtual Memory Information: ℹ️
      18 MB Free RAM
      7.40 GB Active RAM
      7.40 GB Inactive RAM
      2.07 GB Wired RAM
      133.47 GB Page-ins
      2.32 GB Page-outs
    Diagnostics Information: ℹ️
      Dec 11, 2014, 04:10:55 AM WindowServer_2014-12-11-041055_Sams-MacBook-Pro-2.cpu_resource.diag [Details]
      Dec 10, 2014, 08:20:17 PM Unity_2014-12-10-202017_Sams-MacBook-Pro-2.crash
      Dec 10, 2014, 08:19:27 PM Unity_2014-12-10-201927_Sams-MacBook-Pro-2.crash
      Dec 10, 2014, 08:11:16 PM Unity_2014-12-10-201116_Sams-MacBook-Pro-2.crash
      Dec 10, 2014, 08:11:00 PM Unity_2014-12-10-201100_Sams-MacBook-Pro-2.crash
      Dec 10, 2014, 08:10:26 PM Unity_2014-12-10-201026_Sams-MacBook-Pro-2.crash
      Dec 9, 2014, 08:58:42 PM Finder_2014-12-09-205842_Sams-MacBook-Pro-2.cpu_resource.diag [Details]

  • Event handler eats up memory. Bad programing and/or bug.

    Hello
    I've been programming a GUI for a project. The basics of the program is a sample routine that updates a array once a second. Once the array is updated I use a event handler to plot the new array in a graph.
    When I wrote this gui I think I've stumbled upon a bug in Labviews memory allocation.
    If you have two loops. One that builds a array and then signals a loop with a eventhandler that reads the array and the event handler is stoped for a few seconds (by opening a sub vi or something inside the event handler), the memory goes berserk. When the event handler is free after the stop the memory is still allocated and does not return.
    I could not find any information on this problem in the forum so I thought I would share this information with everyone. I managed to reproduce this phenomena in a small example (attached), if anyone is interested in it. The problem is simple to fix once you recognize the problem. However it was not the simplest problem to find (imho that is ).
    Regards
    Andreas Beckman
    Attachments:
    bug.zip ‏23 KB

    Where are you seeing the memory being allocated? What tool are you using, task manager or LabVIEW profiling? I'm not seeing what you describe (LV 7.1.1 on a 3.4 GHz Pentium 4 w/ 1 Gb memory)
    Thanks,
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • How to format Memory card in N79 and 5630 Xpressmu...

    Hi everyone,
    I am using N79 amd 5630 Xpressmusic. Can any body tell me how to format the memory card in these sets. Coz in file manager there is no option to format memory card.
    Regards

    Hi Sappal,
    To format the memory card follow the below procedure:
    1. Go to "File Manager-> Memory Card" (I've named the memory card as N79).
    2. You will need to open the memory card and then go to its "Options" menu.
    3. Go to "Memory Card Options-> Format" and confirm.
    Please note that the memory card will not get formatted unless every application is closed and you have not installed any third party applications on it. For this, you will have to uninstall any third party applications and only then proceed with the memory card formatting procedure.
    Let me know if you need any assistance. My id is  
    Regards,
    Rahul
    moderator's note:
    removed personal contact information as it is inaappropriate to publish personal contact information on a public web forum.
    Rahul.Savaikar

  • No sound in Browsers and low memory errors for Snood and Ultimate Solitaire

    No sound in Browsers and low memory errors for Snood and Ultimate Solitaire. Those are what I'm experiancing. The no sound happens in Safari, Firefox and Opera. Both Snood and Ultimate Solitaire won't load because of 'Not Enough Memory' yet I have 2gigs. Other applications work fine with sound. ie iTunes, GarageBand, etc are ok. I've deleted Snood Prefs with no effect. Any ideas?
    thanks

    No sound in Browsers and low memory errors for Snood and Ultimate Solitaire. Those are what I'm experiancing. The no sound happens in Safari, Firefox and Opera. Both Snood and Ultimate Solitaire won't load because of 'Not Enough Memory' yet I have 2gigs. Other applications work fine with sound. ie iTunes, GarageBand, etc are ok. I've deleted Snood Prefs with no effect. Any ideas?
    thanks

Maybe you are looking for