How to implement large array in Dynamic programming

Hi, there
I am working on my dynamic pogramming codes using Java. The code is getting work, but the spead is very slow.
It is supposed that the very long time run is due to the large array implementation in my codes. Most times, I have two double arrays size up to 320000, and one array of class the same size.
Each iteration could take 30 minitues, the whole optimaization needs up to 50-100 iteration to get converged.
Could any experise help me to how to improve the memory performance in Java?
That is very important for my research.
Looking for very quick response.
Cheers
Jack from Edinburgh

An array of 320000 doubles isn't considered a large array. It must be
somewhere in your algorithm implementation that slows down your
process. Some relevant code snippets could clarify things ...
kind regards,
Jos

Similar Messages

  • How to implement erase function of paint program?

    Hello all:
    there are many demo programs on the website that indicates how to implement
    a simple draw line java program.
    However, i didn't find available source to learn how to implement the erase function,
    so that we can erase part of line or all lines.
    Some programs present the methods to do undo operations, however none of them
    related directly to how to implement erase function.
    thank you for comments
    -Daniel

    Hello all:
    there are many demo programs on the website that
    indicates how to implement
    a simple draw line java program.
    However, i didn't find available source to learn how
    to implement the erase function,
    so that we can erase part of line or all lines.
    Some programs present the methods to do undo
    operations, however none of them
    related directly to how to implement erase function.
    thank you for comments
    -DanielThere are a few ways depending on the app requirement or design.
    The simplest one is to draw with the background color, typically white.

  • Please help how to get return array from rpg program on java code?

    Hi
    I have created a rpg program that returns 2 parameter 1 is the id and another one is list of array, when I called this program I passed two programparameter from my java code (see the code below) but when i checked what value would be return it is returned only first value of array. how will i get all array values ?
    please suggest me regarding this issues I amn't so much aware on java & AS400.
    try
    ProgramParameter[] parmList = new ProgramParameter[2];
    AS400Text p1 = new AS400Text(10);
    AS400Text p2 = new AS400Text(30);
    try
    parmList[0] = new ProgramParameter(10);
    parmList[1] = new ProgramParameter(30);
    parmList[0].setParameterType(ProgramParameter.PASS_BY_REFEREN CE);
    parmList[1].setParameterType(ProgramParameter.PASS_BY_REFEREN CE);
    parmList[0].setInputData(p1.toBytes("Pune"));
    parmList[1].setInputData(p2.toBytes(" "));
    catch(Exception ex)
    ProgramCall pgm = new ProgramCall(o);
    pgm.setProgram("/QSYS.LIB/XXX/XXX.PGM",parmList);
    if (pgm.run())
    byte s[] = parmList[1].getOutputData(); // HERE I got only first value of returning array.
    parmList[1].getOutputDataLength();
    //String sts = ((String) (new AS400Text(10,o).toBytes(s[0])));
    else
    AS400Message[] messageList = pgm.getMessageList();
    for (int msg = 0; msg < messageList.length; msg++) {
    catch(Exception ex)
    AS400Message[] messageList = null;
    finally
    o.disconnectAllServices();
    Reply With Quote

    Try this :
    try
    ProgramParameter[] parmList = new ProgramParameter[2];
    AS400Text p1 = new AS400Text(10);
    AS400Text p2 = new AS400Text(30);
    AS400Array arrP2 = new AS400Array(p2, 4);
    try
    parmList[0] = new ProgramParameter(10);
    parmList[1] = new ProgramParameter(30);
    parmList[0].setParameterType(ProgramParameter.PASS_BY_REFEREN CE);
    parmList[1].setParameterType(ProgramParameter.PASS_BY_REFEREN CE);
    parmList[0].setInputData(p1.toBytes("Pune"));
    parmList[1].setInputData(arrP2.toBytes({"","","",""}));
    catch(Exception ex)
    ProgramCall pgm = new ProgramCall(o);
    pgm.setProgram("/QSYS.LIB/XXX/XXX.PGM",parmList);
    if (pgm.run())
         Object[] objArr =  (Object [])arrP2.toObject( parmList[1].getOutputData() );
         for(int i =0; i<objArr.length;i++){
                System.out.println( " SKU " + i +" : " + objArr.toString());
    else
    AS400Message[] messageList = pgm.getMessageList();
    for (int msg = 0; msg < messageList.length; msg++) {
    catch(Exception ex)
    AS400Message[] messageList = null;
    finally
    o.disconnectAllServices();

  • How to implement index array inside case structure for searching a 3D array?

    Well I have a 3D array and I want to index certain elements from that array. And I have thought of one way of doing this is to have multiple index array functions on the block diagram to search the array simultaneously, but that would be messy. Or I could setup some kind of case structure and place each index array function into individual cases. I've tried the latter, but when I connect the 3D array to the case structure at the"?" it doesn't give me permission because it says I'm hooking up two different types of data. Case Structure is for T or F and 3D array is not a boolean.
    So how can I setup the Case Structure to work for a 3D array?

    A case structure's selection tunnel cannot accept an array.  What exactly are your search criteria?  It sounds like a few FOR loops will be needed.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to put two arrays in one program?

    And also I am comfused by "use at least 1 additional method doing a well-defined task".What actually ask me to do ?
    Cheers.

    public class TwoArrays {
      int[] oneArray;
      String[] anotherArray;
    use at least 1 additional method doing a well-defined taskNo idea. It's your homework, dude. I was given the requirement "find out how much of it's already been done" yesterday. Any idea what that meant?

  • How to do parallel processing with dynamic internal table

    Hi All,
    I need to implement parallel processing that involves dynamically created internal tables. I tried doing so using RFC function modules (using starting new task and other such methods) but didn't get success this requires RFC enabled function modules and at the same time RFC enabled function modules do not allow generic data type (STANDARD TABLE) which is needed for passing dynamic internal tables. My exact requirement is as follows:
    1. I've large chunk of data in two internal tables, one of them is formed dynamically and hence it's structure is not known at the time of coding.
    2. This data has to be processed together to generate another internal table, whose structure is pre-defined. But this data processing is taking very long time as the number of records are close to a million.
    3. I need to divide the dynamic internal table into (say) 1000 records each and pass to a function module and submit it to run in another task. Many such tasks will be executed in parallel.
    4. The function module running in parallel can insert the processed data into a database table and the main program can access it from there.
    Unfortunately, due to the limitation of not allowing generic data types in RFC, I'm unable to do this. Does anyone has any idea how to implement parallel processing using dynamic internal tables in these type of conditions.
    Any help will be highly appreciated.
    Thanks and regards,
    Ashin

    try the below code...
      DATA: w_subrc TYPE sy-subrc.
      DATA: w_infty(5) TYPE  c.
      data: w_string type string.
      FIELD-SYMBOLS: <f1> TYPE table.
      FIELD-SYMBOLS: <f1_wa> TYPE ANY.
      DATA: ref_tab TYPE REF TO data.
      CONCATENATE 'P' infty INTO w_infty.
      CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
      ASSIGN ref_tab->* TO <f1>.
    * Create dynamic work area
      CREATE DATA ref_tab TYPE (w_infty).
      ASSIGN ref_tab->* TO <f1_wa>.
      IF begda IS INITIAL.
        begda = '18000101'.
      ENDIF.
      IF endda IS INITIAL.
        endda = '99991231'.
      ENDIF.
      CALL FUNCTION 'HR_READ_INFOTYPE'
        EXPORTING
          pernr           = pernr
          infty           = infty
          begda           = '18000101'
          endda           = '99991231'
        IMPORTING
          subrc           = w_subrc
        TABLES
          infty_tab       = <f1>
        EXCEPTIONS
          infty_not_found = 1
          OTHERS          = 2.
      IF sy-subrc <> 0.
        subrc = w_subrc.
      ELSE.
      ENDIF.

  • Dynamic Programming with 2-D Arrays Possible in Oracle 10g or not?

    Hi all,
    Is there are 2-D arrays in Oracle? and when not, how can I implement any Dynamic Programming Algorithm (An [Knapsack Problem|http://en.wikipedia.org/wiki/Knapsack_problem] ) on data that I have
    Thanks in advance
    Edited by: ZiKaS on Dec 28, 2008 7:10 AM

    Hello,
    By combining single dimension collections you can build 2,3 or x dimension matrix:
    Declare
      type  typ_int is table of integer index by binary_integer ;
      type  typ_tab_int is table of typ_int index by binary_integer ;
      my_table typ_tab_int ;
    Begin
      for i in 1..10 loop
        for j in 1..5 loop
          my_table(i,j) := i * j ;
        end loop;
      end loop;
    End;Francois

  • How can I make an invalid dynamic disk Array available to the OS again

    Hello Storage Pros
    The setup
    I have a Promise VTrak E610f head unit with 2 VTrak 610j expansion units attached to it together giving me over 27 TB of usable storage space.
    At the hardware level I slip the storage into 6 parts containing 7
     1TB disks and had the parts  configured into 6 RAID 6 arrays. In the end; each of the 6 arrays gives me 4.6TB of usable storage space.
    On the OS level, I have the storage attached to 2 servers: Windows server 2008 and windows server 2008 R2 over a Qlogic fiber channel switch. Each of the 6 arrays are viewable as basic disks of 4,6Tb which I went on to configure as a single RAID 0
    spanned volume of 27TB and for that all the disks had to be converted to dynamic.
    The problem
    Now comes the problem: On my first attempt to do a firmware update on the VTrak E610f storage; all the volumes were rendered foreign and I had to import them to be able to use them. Although the import was successful, I lost all the set NTFS permissions
    and SMB share and I had to manually reconfigure them. Upon doing so The OS registered some inconsistencies in the storage and recommended that I ran chkdsk. Since the storage is that big I reluctantly complied and restarted the server.
    The first server was restarted BUT chkdsk did not commence as scheduled, the server powered right up. After logging in to inspect; I discovered - to my surprise, that the disks were now shown as invalid in Disk Manager and were no longer visible to
    the OS. Assuming that maybe a restart of the other server and the storage would set things right, I went ahead to do so but to no avail. After rebooting the entire system (including the storage), the other server also displayed the disks as invalid and were
    no longer visible to the OS as well.
    My question is; how can I make the disk available again from this ‘invalid’ state without losing data?
    What I tried but did not help:
    Taking the disks offline and then online again did not work, after the disks were online again, they still appeared as invalid.
    Reactivating the disks threw an error “operation not allowed on an invalid disk pack”
    Calling support of the storage manufacturer: they did not find anything wrong with the system, after 5 hours we had to stop.
    I fear converting the array from dynamic to basic will destroy all the data.
    HxD is showing no errors in the disks
    If there is any expert out there with helpful tips; your assistance will be greatly appreciate.
    Cheers
    John

    Hello  Shoan
    Thanks a lot for your response and tips. Sorry I could not get back to you in good time for I had to run some of the tests you provided, it took some time to
    thoroughly re-test the system.
    The summary
    The initial firmware upgrade attempt forced 3 disks offline and the other 3 became foreign. I had to re-import them to have access again. after re-importing
    the disks I realized  all NTFS permissions and SMB shares of the folders on the disks had disappeared, but at least the disk was visible and accessible at that point - but not fault free. It was recommened that I let chkdsk run. However rebooting the
    system to allow chkdsk to run did not result in chkdsk running, instead chkdsk did not run and after restart, the OS showed the disks as invalid. And that is still the case now.
    Response to your questions:
    Yes the storage array was (and is still) connected to another server 2008 R2 server when the problem occurred. The second server is also displaying the same problem: the disks are shown as invalid.
    The loss of SMB shares and NTFS permissions occurred after the initial firmware upgrade attempt, some disks (3 out of 6 of them) were forcibly offlined and the other 3 were, suddenly, marked as foreign. In the end, and to have access to the disks
    I had to online the offlined 3 disks and then reimport the rest of them. From the way I understand it, if the upgrade was not the cause, then at least it was the trigger.
    In as far as converting disks from dynamic to basic, I was not in luck so far:
    Three of the companies I have contacted (recommended by promise Technology technician) so far only work with smaller disks like 2TB, 27 TB like I have is so
    far too big.
    I’m not sure converting the disks to basic will help much though, since that would break the single 27 TB volume which the OS was working with into 6 individual
    disks of 4.6 TB. Will I be able to get the data back that was written to just one volume from those 6 individual and unrelated disks?
     Above all, I have connected the RAID storage system to a newly installed Server 2008 R2, the disks are also shown as invalid.
    I have spent more than 17 hours in remote sessions with a Promise Technology technician trying the resolve the issue. From the technician’s side all seems in place with the exception
    that the disks are invalid in the OS.
    I have contacted Microsoft Customer Support service with the issue. Given that Microsoft did not manufacture the storage unit, can they help at this point – or am I better off
    putting my hopes else?
    Your help is always appreciated and again, thanks for your response and advice.
    JohnV

  • How do i output multiple arrays from a case structure to create one larger array

    I currently have a vi that has one hardware input that i needed to take a measurement then be moved and take a similar measurement at a different point.  To accomplish this i used a while loop inside a case structure.  The while loop takes the measurement  and finds the numbers i need while the case structure is changed per the new measurement location.  I want to take the data points i have created in each case and output them into a single table.  I assumed to do this the best way would be to get the data from each case into its own built array and build a larger array but I cant get the information out of the case structure so that it all inputs at different places.
    thanks for your help
    Attachments:
    Array.vi ‏30 KB

    Hi Ross,
    attached you will find a solution for your table building problem.
    I would suggest thinking about program design - having the same case content in several cases doesn't make sense. I also would not want my user to press several stop buttons depending on choosen measurement...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    Array.vi ‏45 KB

  • How to implement dynamic sql in owb

    Hi everybody,
    I am new to OWB and hence i want to know how i can implement the following dynamic sql statement in owb...
    Declare
    Cursor C_tab_col is
    Select cat from tbl_cat_edesc_1 ;
    Vcat varchar2(240);
    Cursor C_edesc_col is
    Select edesc from tbl_cat_edesc_1 ;
    Vedesc varchar2(240);
    V_Command varchar2(30000);
    Begin
    Open C_Tab_col;
    Fetch C_tab_col into vcat;
    Open C_edesc_col;
    Fetch C_edesc_col into vedesc;
    loop
    V_Command := 'update upd_catseg_1 c set c.'||vcat||'=';
    V_Command := V_Command||'(select d.sales from TEST_catseg d' ;
    V_Command := V_Command||' where edesc = '||''''||vedesc||''''||' and c.cardno=d.cardno)';
    dbms_output.put_line('10 '||V_command);
    Execute immediate v_command;
    Fetch C_tab_col into vcat;
    Exit when c_tab_col%notfound;
    Fetch C_edesc_col into vedesc;
    Exit when c_edesc_col%notfound;
    end loop;
    commit;
    end;
    Thanks a many

    Hi,
    first i have created a procedure witht he following code in the code editor...
    BEGIN
    Declare
    Cursor C_brand_col is
    Select cat from TBL_CAT_EDESC_BRAND ;
    Vbrand varchar2(240);
    Cursor C_bredesc_col is
    Select EDESC_BRAND from TBL_CAT_EDESC_BRAND;
    Vbredesc varchar2(240);
    V_Command varchar2(30000);
    Begin
    Open C_brand_col;
    Fetch C_brand_col into vbrand;
    Open C_bredesc_col;
    Fetch C_bredesc_col into vbredesc;
    loop
    V_Command := 'update sav_fc_sa_pc c set c.'||vbrand||'=';
    V_Command := V_Command||'(select d.fc_brands_sa from TEST_brand d' ;
    V_Command := V_Command||' where d.brand_edesc = '||''''||vbredesc||''''||' and c.cardno=d.cardno)';
    dbms_output.put_line('10 '||V_command);
    Execute immediate v_command;
    Fetch C_brand_col into vbrand;
    Exit when c_brand_col%notfound;
    Fetch C_bredesc_col into vbredesc;
    Exit when c_bredesc_col%notfound;
    end loop;
    commit;
    end;
    END;
    then i validate it and deply it..
    after that i create a mapping and in that mapping i first import the table TBL_CAT_EDESC_BRAND and drag and drop it into the mapping and again the i put the procedure into a transformation operator and connect the inoutgrp of the table to the transformation operator ingrp deploy it and run it...this is taking a lot of time .... so i am not sure whether i am doing the right thing...for this dynamic sql i dont need to pass any parameters. can i juz execute this procedure or should i create a mapping ???? i am totally confused... could you please help me.....how to proceed........
    if i juz execute the dynamic sql it takes only 5 min in sql but i am not sure how ti implement it in owb... can you please help...
    Thanks a many

  • How to implement Dynamic lookup in OWB mappings(10g)

    Hi,
    Iam using OWB 10g version for developing the mappings.
    Now I need to implement the Dynamic lookup in the mapping.Is there any transformations available in OWB to achieve this.
    Please give me some information about the same.
    Thanks in advance...

    Hi,
    first i have created a procedure witht he following code in the code editor...
    BEGIN
    Declare
    Cursor C_brand_col is
    Select cat from TBL_CAT_EDESC_BRAND ;
    Vbrand varchar2(240);
    Cursor C_bredesc_col is
    Select EDESC_BRAND from TBL_CAT_EDESC_BRAND;
    Vbredesc varchar2(240);
    V_Command varchar2(30000);
    Begin
    Open C_brand_col;
    Fetch C_brand_col into vbrand;
    Open C_bredesc_col;
    Fetch C_bredesc_col into vbredesc;
    loop
    V_Command := 'update sav_fc_sa_pc c set c.'||vbrand||'=';
    V_Command := V_Command||'(select d.fc_brands_sa from TEST_brand d' ;
    V_Command := V_Command||' where d.brand_edesc = '||''''||vbredesc||''''||' and c.cardno=d.cardno)';
    dbms_output.put_line('10 '||V_command);
    Execute immediate v_command;
    Fetch C_brand_col into vbrand;
    Exit when c_brand_col%notfound;
    Fetch C_bredesc_col into vbredesc;
    Exit when c_bredesc_col%notfound;
    end loop;
    commit;
    end;
    END;
    then i validate it and deply it..
    after that i create a mapping and in that mapping i first import the table TBL_CAT_EDESC_BRAND and drag and drop it into the mapping and again the i put the procedure into a transformation operator and connect the inoutgrp of the table to the transformation operator ingrp deploy it and run it...this is taking a lot of time .... so i am not sure whether i am doing the right thing...for this dynamic sql i dont need to pass any parameters. can i juz execute this procedure or should i create a mapping ???? i am totally confused... could you please help me.....how to proceed........
    if i juz execute the dynamic sql it takes only 5 min in sql but i am not sure how ti implement it in owb... can you please help...
    Thanks a many

  • How to implement a forever running program?

    i made a program that does some file i/o in an infinite loop (while(!stop)). if all work is one it waits until "jnotify" notifies that a new folder was created and it starts working again. this program has a jmx interface to start and stop this loop. all functionality is done only the main() is missing now.
    how to implement a forever running main, only waiting for (user)-methods called to execute them - just like any gui-application? i guess in a swing-app there is no while(!closed)-loop? (in meantime i noticed - such loops consum 100% cpu ;-)). So is there a best practice or a "pattern" for such common apps?
    thx in advance

    817113 wrote:
    in my case the "inner-jnotify-file-io"-thread it self is stoppable (while(!stop) listen for jnotify events). but if this thread is stopped the hosting main-method must keep runnning - waiting until someone calls start() via jmx or shutdown(). Strictly speaking the main methods only task is to host the jmx interface (, the logger..) and to run until someone calls shutdown (like a swing gui that waits until someone closes the window).
    How to implement such behavior? Do i need another thread within main, waiting for such an event and message it to the hosting main method? Main already runs in its own thread, if your "inner-jnotify-file-io"-thread has to be able to be stopped (instead of just paused), then you need another thread that stays alive.
    You could make the main thread wait() on something that gets notified() when close is called.
    (i could hardly believ that there is no "pattern" or example fo a main()-method/app that is running until someone calls a "close"-methode)No, you're just not understanding the big picture here. It's quite easy to make an app like that. And you've been given ways and information on how to do it.

  • Dynamic programming How to assign a static UI element to a static tray

    Hi There,
    We are enhancing a standard WDA application and we have a few static UI element created on the view. And now we want to rearrange these element to look like this.
    Current:
    Root
    -> Transparent container1
    -> ZTray
    -> Transparent container2
    target
    Root
    -> ZTray
         -> Transparent container1
        -> Transparent container2
    Can you help me to find out me how can i perform this 'move" assignment using dynamic programming.
    Thanks for your inputs.
    Rgds

    Hi Sudhir,
    You can start trying something like this in WDDOMODIFYVIEW.
      DATA:
         lo_element       type ref to cl_wd_uielement,
         LO_CONTAINER    TYPE REF TO CL_WD_UIELEMENT_CONTAINER.
      IF first_time = abap_true.
        LO_CONTAINER ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
        lo_element = LO_CONTAINER->REMOVE_CHILD( ID = 'ZTRAY' ).
        LO_CONTAINER->ADD_CHILD( INDEX = 1
                                 THE_CHILD = LO_ELEMENT ).
      ENDIF.
    I never did something like that. I guess that depending on the layout type of the view this code will need some changes (e.g matrix layout). I tried a simple test with flow layout and worked fine here.

  • How to implement moving (linear) averaging in a subVI with dynamic data?

    I was wondering how to implement a moving or rolling linear averaging using a subVI on a set of dynamic data coming from the DAQ Assistant or a counter input channel that will be written using the Write to Measurement File VI?  Below is an example of what I mean.
    Solved!
    Go to Solution.

    You could use the MeanPtbyPt vi to give the running average.  Assuming your code snippet is inside a loop, wire an =0? comparison of the iteration number to the initialize input to reset the value and put 25 (or whatever you want) as the sample length.

  • How to Implement Dynamic Modification Rule for Material & multiple vendor Combination

    Hi Team,
         In dynamic modification rule for Material &  vendor combination, i have maintained material & vendor in Inspection plan at Material Assignments
    1.If i purchase same material from different vendors then how to implement ?

    Hi Balaji,
    I am not sure if i have followed your requirement.
    What do you want to do with Vendor Z? Do you want to inspect each lot from Z?
    If yes:
    Then Create 2 Inspection plans with same Operations and Same MICs, In Material Assignment, mention Vendor as Z so that 1st inspection plan will only be for Vendor Z. Do not enter DMR in Header.
    In 2nd inspection plan Enter DMR and do not mention any vendor so this plan will be applicable for all vendors except Z.
    If No:
    Then create Qm info record for vendor Z with "No inspection" set in QI06.
    Amol.

Maybe you are looking for

  • How do I change my iCloud email address? Do I need to create a whole new account?

    I have an icloud email address, it isn't very professional and I would like to change it to something more professional like my name @icloud.com

  • Migrate from minimac (G4) to new iMac via airport extreme

    I have a brand new iMac and I have the latest airport extreme. I have my old miniMac and all are linked up through the Airport Extreme. I want to transfer all of my old files from my G4 miniMac to my new iMac but the Migration Assistant says I have t

  • Business Partner "Search by"

    On Business Partner maintenance screen, There is "By" field which has a drop down list by which we can search. In this drop down list I want to remove certian terms like "Pharma Attributes" and "R/3 Customer Number". I am unable to find it in customi

  • Spaces getting trimmed in file content conversion

    Hi all, I am converting a flat file to an XML file by XI. The problem which i am facing in file content conversion is that the spaces in flat file data are getting trimmed to one space in the XML in SXMB_MONI. The data in flat file is like SOUTHSEA a

  • CIF: Vendor transfer

    Hi All: I have been trying to send Vendors over to APO thru CIF, I could see a bunch but couple of them just dont get across. I tried sending them alone in a seperate Integration model I get the same message that (vendor) <b>location does not exist</