Why is java.io.InputStream.read() so slow???

Hi everyone,
I have an applet that reads a file via url. I open the file and read from it using this code:
URL url = new URL (http://"www.somesite.com/target.txt");
try {
InputStream is = url.openStream();
//reads the raw data from the file
for(int i = 0; i != -1;) {
i = is.read();
//determines dimensions needed for the array
if(i == '~') {
dataDimension++;
rawData += (char) i;
}catch(IOException ioe) {}
The code works without errors. (hopefully the above does too, I dont think I introduced any errors when I pasted it over...) The problem is it is unbelieveably slow. When I run it on my file of 85kB in size, the code runs for several minutes on this loop reading in the data in the file. I have no idea why this is...the problem appears to have little or nothing to do with bandwidth as ive tried it on dsl, 56K etc. Ive even writtin a variant that reads the data off my hard drive. No matter where the file resides and how fast of a pipe I give it, it takes just about the same time to complete. My assumption is that either Strings have an increasingly harder time concatenating another string to its end as its size increases or InputStream needs to be layered in another reader object for some strange reason.
Does anyone have any idea whats happening here? Is there a faster way to get characters from a file into a String?
I really do appreciate any help I get on this one!
Thanks in advance for posting.
Sincerely,
Nickolas Fellows
[email protected]

Haha, Im an idiot...I answered my own question...or at least I think I did.
Turns out I shoulda been using a StringBuffer and initializing it with a size large enough to hold the file right off the bat. I am assuming making the string recreate its self everytime its size got exceeded was the problem.
Thx for letting me waste everyones time again :)
Sincerely,
Nickolas Fellows
[email protected]

Similar Messages

  • Why is Java VM on Win32 so slow??

    I use Mozilla 1.3b browser. But I switch to IE when I have to use Java apps, because the Microsoft VM is so much better than the Sun VM. Just try it out. Go to www.naperville-lib.org and click on the "Library Catalog/Your Account" link. Check out how slow that app is on the Sun VM. Compare with MS VM. Check out other Java apps.. like www.sodaplay.com. Noticeably faster on MS VM.
    This is just unacceptable. Java apps run like molasses on my machine, as if I were running a 300MHz machine (when in fact I'm running at 1GHz). I've heard other complaints about this too, so I know it's not just me.
    Can we expect a faster VM any time soon?

    Agree!!! MS VM is really better than Sun VM for runing Applet, both concerning performance and stability. It's a bad news that MS VM will be replaced by Sun VM in future. See http://news.com.com/2100-1001-983169.html.

  • Java.io.Reader - java.io.InputStream

    Hi!
    Is there a way to wrap a java.io.Reader into an java.io.InputStream (like java.io.InputStreamReader does but in the other direction)?
    I found now class doing this job (deduced from java.io.InputStream, taking an java.io.Reader as Constructor Parameter) :-/
    If I want to write my own wrapper I've got two problems:
    * If I want to read data I have to split the char which I read from the wrapped java.io.Reader into a high and a low byte and than return two values.
    * But if I want to read text I can't just split the char into two bytes but I have to convert it
    How can I solve this problem?

    Is there a way to wrap a java.io.Reader into an java.io.InputStream (like java.io.InputStreamReader does but in the other direction)?Why don't you explain what the real problem is? I suspect that there's a solution, but you need to state it. What was the creator and source of the information (file?) that you're trying to read that contains "data" and, apparently, Java characters in a different charset?

  • Why is java slow?

    Why is java so slow? I think sun needs to make a big improvement on the speed of loading a java program/applet.!!

    It is slower because it is an interpreted language. There have been many improvements to the language from compilation and through newer JVM's that further optimize the code. It is someting you must work w/ when you use the language.

  • Why can't InputStream.read() be interrupted?

    I have a native application that launches a java application. To allow for the communication between the two applications, the native app launches the java app with stdin and stdout redirected to a file handles. The Java application creates a thread to read from System.in. Everything works great -- UNTIL . . .
    . . . the native app closes the communcation handles and exits, leaving the java application blocking on the InputStream.read().
    My question is why doesn't the blocking InputStream.read() get interrupted when the communcation handle in the native app closes? This appears to be a BUG in Java. I would expect to get an exception or error on the read when the handle on the other sides exits.
    My ideas to work around this would include changing the IPC communcation to a network protocol like sockets, or MMF. However, redirecting stdin and stdout seemed to be the simpliest IPC. Any other ideas or suggestions?
    Cheers,
    Kyley

    Thanks for all your replies. Hearing others express the same idea that it should work the way that I had thought made me revisit how the native application was launching the application and how the handles were redirected.
    After getting things working on UNIX (Sun Solaris), I looked again at the code (which I didn't write) that launched the java application on Windows. After rewriting the code, the original code wasn't duplicating stdin & stdout and closing one of the original handles. Once that was done properly, AMAZINGLY everything worked as I had intended it to work.
    Thanks again for the time to reply.
    Kyley

  • Why learn Java now?

    I'm new to Java programming and have developed some small demo classes.
    I have exp with other Visual languages and I feel like I'm taking a step back in time writing code in Notepad and compiling and running from dos etc.
    I have several classes and lots of code lines to do a simple thing in swing like create a frame and a simple menu panel.
    I thought Java required less code but so far it requires 3 times an much as other languages!
    What visual tools or IDE�s exist for Java development other than Sun ONE Studio?
    Why learn java now? The number of jobs posted online seams to be higher for Java that any other language out there like vb.net, C++ etc.
    Any Comments of the Future of Java Jobs?
    Running Java:
    My apps run slow on XP, 384M ram.
    Do production Java applications suffer from slow execution of the JVM layer?

    Java code is easier to understand and more stable than "faster" languages. There is more flexibility and extensibility than in other languages, and the error-processing system is quite advanced. There are also very powerful tools you can use out-of-the-box, like JOptionPane:
    import javax.swing.*;
    public class Foo
        public static void main(String[] args)
            String pass = JOptionPane.showInputDialog(null, "Please enter your password");
            System.out.println("Password="+pass);
    Also see javax.swing.JColorChooser.
    -Tim                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Is java program meant to be slow?

    I dont know why...
    I have made a simple uploader which can upload 3 files at a time simultaneously...and it's a gui based.
    however, it runs quite slow, and it uses alot of memory.
    Is Java meant to be this slow?
    btw, will using AWT instead of Swing improove the performance?

    I guess the more assumption of memory, the slower the
    program is, right?Wrong. You can improve performance by caching some objects and thus using more memory. Or you could increase locailty by solving the same job with less memory and thus increase performance. Basically you there is no direct relation between memory usage and performance.
    well, i could see how much memory is used simply by
    ctrl+alt+del, the task manager.That gives you only a rough overview of the system, basically because of stuff like shared libraries, shared memory, other resources that appear as allocated memory (mmaped files in UNIX, for example), ...
    However, what is a profiler? http://www.google.com/search?q=profiler
    by slow, I mean, well, the program effects alot on
    other softwares to execute slower, for eg, open a
    browser, open My Computer, etc.That sounds like your program uses an idle loop. You probably implemented it in an un-effective manner. You could have made that mistake in any other language as well (I even think it's easier to fix in Java).
    btw, I hypothesize that I could follow the suggestion
    of uploading sequentially, because it can also reduce
    the amount of objects used to reduce memory usage.since your assumption before is not necessarily true, neither is this one.
    Or, if you people are kind enough, maybe you could
    check my whole source code? well, it is about 9 pages
    long.Probably not, but post the loop that does the file reading and uploading, as my guess would be that that is the bottleneck. Otherwise use aforementioned profiler to find out which part is slowest.

  • Why does my iPhoto open and run slow since upgrading to OSX 10.8.5

    Why does my iPhoto open and run slow since upgrading to OSX 10.8.5?  I have an Imac - Intel 2.5 GHz quad core I5 - with 20 GB of memory. Before the upgrade it was much faster.

    Why does my iPhoto open and run slow since upgrading to OSX 10.8.5?  I have an Imac - Intel 2.5 GHz quad core I5 - with 20 GB of memory. Before the upgrade it was much faster.

  • Why is Java update asking me to install openoffice?

    I have installed Java jdk 1.6.
    Now the update notification is asking me if I want to install openoffice.
    I am not interested in that kind of notifications. (By the way I already have installed open office)
    There needs to be a differentiation between java updates and other updates (3th party tools). Then I can switch off that kind of notifications.
    I am only interested in Java updates.
    Why is Java update asking me to install openoffice?
    Thanks and regards,
    Cees

    It's probably asking you to update to iOS 8.2, which includes support for the upcoming Apple Watch.

  • HT4528 Why is the WiFi and browser so slow on iPhone 5?

    Why is the WiFi and browser so slow on iPhone 5?  I've noticed they are not as quick as other smart phones and have seen this brought up in forums.  Also, the WiFi was slow with my iPhone 4 anyone know what the deal is?
    Thanks in advance

    Sadly that spiffy reply was of no use.  Browser is so slow and in looking at 3 different iPhones I have noticed there is a serious wait for any simple page to come up like MSN maybe its the iOS maybe Safari maybe should reset daily.  Truly not impressed Apple can you here us now?  Probably not... to busy restarting or resetting.
    Truly hope it improves in a hurry.

  • Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Why is the download/upload speed so slow on my MBA (about 5 times slower than my PC)?

    Are you on band 13 or band 4?  13 is the original LTE band and remains relatively congested. Band 4 is the XLTE band and is less congested and has higher overall potential bandwidth (15 MHz vs 10 MHz). Even so, 7 Mbps is more than enough for doing stuff on your phone and is not considered slow. 
    To check band,
    dial *3001#12345#*
    select serving cell info
    frequency band will say 13 or 4
    FInd an area with band 4 and retest. 

  • Create(java.io.InputStream) in Scanner cannot be applied to (java.io.File)

    Ahhh!!!
    Ahem, when I try to compile the file below, "PhoneDirectory.java", I get the following compilation error message:
    PhoneDirectory.java:12: create(java.io.InputStream) in Scanner cannot be applied to (java.io.File)
        Scanner fin = Scanner.create(file);After quite a bit of tweaking... I'm right back where I started. I'm a seasoned programmer, as far as concepts are concerned, but rather new to JAVA.
    The error seems to be occuring where a new instance of "Scanner" is supposed to be created. It uses file I/O, and I had only used the Scanner class for the keyboard input in the past.
    Looking at the Scanner class, everything seems to be right to me. I'm probably missing some simple fundamental concept, and I've been pulling my hair out trying to get it... Please help me shed some light on this situation!
    =========
    PhoneDirectory.java
    =========
    import java.io.*;
    // Read a file of names and phone numbers
    // into an array. Sort them into ascending
    // order using bubble sort.
    // Print names and numbers before and after sort.
    public class PhoneDirectory {
      public static void main (String[] args) {
        PhoneEntry[] directory = new PhoneEntry[200];
        File file = new File("c:\\jessica\\phonenum.txt");
        Scanner fin = Scanner.create(file);
        int numberEntries = 0;
        // read array from file
        while (fin.hasNextInt())
          directory[numberEntries++] = new PhoneEntry(fin);
        // print array as read
        for (int i=0; i<numberEntries; i++)
          System.out.println(directory);
    // sort by ordering defined in PhoneEntry,
    // in this case lastName firstName
    bubbleSort(directory, numberEntries);
    // print sorted array
    System.out.println(
    "============================================");
    for (int i=0; i<numberEntries; i++)
    System.out.println(directory[i]);
    static void bubbleSort(PhoneEntry[] a, int size) {
    // bubbleSortr: simple to write, but very inefficient.
    PhoneEntry x;
    for (int i=1; i<size; i++)
    for (int j=0; j<size-i; j++)
    if (a[j].compareToIgnoreCase(a[j+1]) > 0) {
    // swap
    x = a[j]; a[j] = a[j+1]; a[j+1] = x;
    =========
    PhoneEntry.java
    =========
    class PhoneEntry {
    // number, name entry for a line in a Phone Directory
      protected int area;
      protected int prefix;
      protected int number;
      protected String firstName;
      protected String lastName;
      public String toString() {
      // format name and phone number to printable string
        String x = lastName + ", " + firstName;
        x = x +
        " . . . . . . . . . . . . . . .".substring(x.length())
        + "(" + area + ") " + prefix + "-" + number;
        return x;
      public int compareToIgnoreCase(PhoneEntry v) {
      // alphabetically compare names in this to names in v
      // return negative for this < v, 0 for ==,
      //        positive for this > v
        int m = lastName.compareToIgnoreCase(v.lastName);
        if (m == 0) m = firstName.compareToIgnoreCase(v.firstName);
        return m;
      public PhoneEntry(Scanner fin) {
      // input a PhoneDirectory entry. Must be space delimited
      // area prefix suffix lastname firstname
        // number
        area = fin.nextInt();
        prefix = fin.nextInt();
        number = fin.nextInt();
        // read rest of line
        String name = fin.nextLine();
        // split name into lastName firstName
        int p = name.indexOf(' ');
        if (p > 0) {
            lastName = name.substring(0,p);
            firstName = name.substring(p+1);
        else {
            lastName = name;
            firstName = "";
    }=========
    Scanner.java
    =========
        This class does input from the keyboard.  To use it you
        create a Scanner using
        Scanner stdin = Scanner.create(System.in);
         then you can read doubles, ints, or strings as follows:
        double d; int i; string s;
        d = stdin.nextDouble();
        i = stdin.nextInt();
        s = stdin.nextLine();
        An unexpected input character will cause an exception.
        You cannot type a letter when it's expecting a double,
        nor can you type a decimal point when it's expecting an int.
    import java.io.*;
    public class Scanner {
    // Simplifies input by returning
    // the next value read from the
    // keyboard with each call.
      private String s;
      private int start=0, end = 0, next;
      private BufferedReader stdin;
      Scanner(InputStream stream) {
        start = end = 0;
        // set up for keyboard input
        stdin = new BufferedReader(
        new InputStreamReader(stream));
      public static Scanner create(InputStream stream) {
        return new Scanner(stream);
      double nextDouble() {
         if (start >= end)
           try {
            s = stdin.readLine().trim() + " ";
              start = 0;
             end = s.length();
          catch (IOException e) {System.exit(1);}
         next = s.indexOf(' ',start);
         double d = Double.parseDouble(s.substring(start,next));
         start = next+1;
         return d;
      public int nextInt() {
         if (start >= end)
           try {
            s = stdin.readLine().trim() + " ";
              start = 0;
             end = s.length();
          catch (IOException e) {System.exit(1);}
         next = s.indexOf(' ',start);
         int d = Integer.parseInt(s.substring(start,next));
         start = next+1;
         return d;
      public String nextLine() {
         if (start >= end)
           try {
            s = stdin.readLine().trim() + " ";
              start = 0;
             end = s.length();
          catch (IOException e) {System.exit(1);}
         String t = s.substring(start,s.length()-1);
         start = end = 0;
         return t;
    }=========
    phonenum.txt
    =========
    336 746 6915 Rorie Tim
    336 746 6985 Johnson Gary
    336 781 2668 Hoyt James
    606 393 5355 Krass Mike
    606 393 5525 Rust James
    606 746 3635 Smithson Norman
    606 746 3985 Kennedy Amy
    606 746 4235 Behrends Leonard
    606 746 4395 Rueter Clarence
    606 746 4525 Rorie Lonnie

    I don't see a Scanner.create() method in the Scanner class but I do see a constructor with the signature you want. Change
    Scanner fin = Scanner.create(file);
    to
    Scanner fin = new Scanner(file);

  • Why does Java have such a large footprint?

    I've been curious about this topic for a while, but I haven't ever looked into this to any depth. I also posted this to stackoverflow but haven't gotten any solid responses so far:
    http://stackoverflow.com/questions/1107991/why-does-java-have-such-a-large-footprint
    Java - or at least Sun's Hotspot JVM - has long had a reputation for having a very large memory footprint. What exactly is it about the JVM that gives it this reputation? I'd be interested in a detailed breakdown: how much memory goes to the runtime? (The JIT? The GC/memory management? The classloader?) Anything related to "auxiliary" APIs like JNI/JVMTI? The standard libraries? (Which parts get how much?) Any other major components?
    I realize that this may not be straightforward to answer without a concrete application plus VM configuration, so just to narrow things down at least somewhat: I'm primarily interested in default/typical VM configurations, and in a baseline console "Hello world" app as well as any real-world desktop or server app. (I'm suspecting that a substantial part of the JVM's footprint is largely independent of the app itself, and it is in this part that I'd like to zoom in, ideally.)
    I have a couple of other closely related questions:
    Other similar technology, such as .NET/mono, don't exhibit nearly the same footprint. Why is this the case?
    I've read somewhere on the intarwebs that a large portion of the footprint is due simply to the size of the standard libraries. If this is the case, then why is so much of the standard libraries being loaded up front?
    Are there any efforts (JSRs, whatever) to tame the memory footprint? The closest thing I've come across is a project to reduce the on-disk footprint of the JVM [1] and to modularize the standard library [2].
    I'm sure that the footprint has varied over the past decade or so with every new version of Java. Are there any specific numbers/charts chronicling precisely how the JVM's footprint has changed?
    [1] http://blogs.sun.com/jtc/entry/reduced_footprint_java_se_bringing
    [2] http://blogs.sun.com/theplanetarium/entry/project_jigsaw_modularizing_jdk_7

    yangzhang wrote:
    I've been curious about this topic for a while, but I haven't ever looked into this to any depth. I also posted this to stackoverflow but haven't gotten any solid responses so far:
    http://stackoverflow.com/questions/1107991/why-does-java-have-such-a-large-footprint
    Java - or at least Sun's Hotspot JVM - has long had a reputation for having a very large memory footprint. What exactly is it about the JVM that gives it this reputation? I'd be interested in a detailed breakdown: how much memory goes to the runtime? (The JIT? The GC/memory management? The classloader?) Anything related to "auxiliary" APIs like JNI/JVMTI? The standard libraries? (Which parts get how much?) Any other major components?
    Presumably versus some other VM. I would suppose the fact that much of the VM is written in java has something to do with it.
    I realize that this may not be straightforward to answer without a concrete application plus VM configuration, so just to narrow things down at least somewhat: I'm primarily interested in default/typical VM configurations, and in a baseline console "Hello world" app as well as any real-world desktop or server app. (I'm suspecting that a substantial part of the JVM's footprint is largely independent of the app itself, and it is in this part that I'd like to zoom in, ideally.)
    I have a couple of other closely related questions:
    Other similar technology, such as .NET/mono, don't exhibit nearly the same footprint. Why is this the case?
    Not sure I agree with that. What size do you see with a .Net app that uses 3.0/3.5?
    I've read somewhere on the intarwebs that a large portion of the footprint is due simply to the size of the standard libraries. If this is the case, then why is so much of the standard libraries being loaded up front?
    Good question. There is a feature that allows multiple VMs to use the same memory footprint version of the loaded libraries. That is a new feature and it isn't clear to me if it covers the entire API. I do not know if that is dynamically built.

  • Bug in the ServerSocket InputStream.read()

    I believe there is a bug in the ServerSocket InputStream.read() method.
    This is demonstrated under Windows XP, running 1.4.0_01-b03
    I am looking for confirmation and an examination of my assumptions for this.
    There is nothing that suggests the InputStream.read() method should block on a EOL, yet it does.
    This is demonstrated with the following code.
    To reproduce uncomment one of the 'Case' sections in the MyServer code. Compile both classes. Run the MyServer then MyClient code.
    The expected result for ALL cases should be
    ***socket start
    text1
    text2
    But for the first case the last line is not printed. Note that for case 3 it does work, and the only exception is that available() is called.
    The InputStream of the server resolves to java.net.SocketInputStream. The read() method calls the read(byte, int, int) method (which how I guessed that calling available would produce different results.)
    //-----------------Client
        import java.io.*;
        import java.net.*;
        public class MyClient
            private MyClient() {}
            static public void main(String argv[])
                try
                    Socket s = new Socket("127.0.0.1", 50080);
                    OutputStream os = s.getOutputStream();
                    String text = "text1\r\ntext2";
                    os.write(text.getBytes());
                    os.flush();  // We know it was sent.
                    // Important!  The socket remains open!
                    while(true)
                        Thread.currentThread().sleep(60 * 1000);
                catch(Throwable e)
                    e.printStackTrace();
    //----------- Server
        import java.net.*;
        public class MyServer implements Runnable
            Socket s;
            public MyServer(Socket s)
                this.s = s;
            static public void main(String argv[])
                try
                    ServerSocket ss=new ServerSocket(50080);
                    while(true)
                        Socket s=ss.accept();
                        Thread t = new Thread(new MyServer(s));
                        t.start();
                catch(Throwable e)
                    e.printStackTrace();
            public void run()
                try
                    System.out.println("***socket start");
                    java.io.InputStream ins=s.getInputStream();
                    // Case 1: Does NOT work
                    int j;
                    while((j=ins.read())!=-1)
                        System.out.write(j);
                    // Case 3: Does work
                    while (true)
                        int len = ins.available();
                        if ((len < 0) || s.isClosed()) break;
                        byte b[] = new byte[len];
                        ins.read(b);
                        for (int i=0; i < len; i++)
                            System.out.print((char)b);
    // Case 3: Does work
    while (true)
    int len = ins.available();
    if ((len < 0) || s.isClosed()) break;
    for (int i=0; i < len; i++)
    int b = ins.read();
    System.out.print((char)b);
    System.out.println("***socket end");
    catch(Throwable e)
    e.printStackTrace();

    System.out is line buffered. (I can only hope that I might have noticed this myself if I had been smart enough to use the same output method.)
    Ok so it isn't a socket problem. But I still don't see anything that documents the behavior.
    System.out is documented as a java.io.PrintStream. And that is actually the class that implements it.
    Nothing in the documentation for PrintStream, the methods, the FilterOutputStream or even OutputStream would suggest the different behavior.
    C works the same way; this never prints "world" on most systems:C works that way because of the way file descriptors work and the way that the buffers for those are handled. And how it works is undefined, a C implementation is allowed to handle it anyway it wants.
    But this Java and not C. That means at a minimum that the behavior must be the same on all OSs. But given that the behavior is not documented then it could be that it is left to the implementation of the C library that the java io library is built upon. And that is not a good thing (in terms of normal java.)
    The following demonstrates the behavior using the two output methods...
          String text = "text1\r\ntext2";
          byte[] b = text.getBytes();
          System.out.println("--- print using print() sleep for 10 secs after");
          for (int i=0; i < b.length; i++)
             System.out.print((char)b);
    Thread.currentThread().sleep(10 *1000);
    System.out.println();
    System.out.println("--- print using write() sleep for 10 secs after");
    for (int i=0; i < b.length; i++)
    System.out.write((int)b[i]);
    Thread.currentThread().sleep(10 *1000);
    System.out.println();
    System.out.println("--- done");

  • Why my Illustrator CC is now very slow for opening a 2MB AI file (about 5 minutes), at the beginning (1 month ago) it was very fast (10 seconds).

    Why my Illustrator CC is now very slow for opening a 2MB AI file (about 5 minutes), at the beginning (1 month ago) it was very fast (10 seconds).

    Assuming that you system meets minimal requirements for CC, make sure you have enough space on your hard drive. By saying enough, I try not to cross 3/4 of its capacity but trivially saying, the more free space the better and the faster the drive the better (I've been considering an SSD drive but still running a regular HDD).
    If you are on Windows, clean up the %TEMP% folder regularly and keep the disk neat using the defragmentation tool.
    Click Start>Run>enter %temp% , wait for the files to load and select all, hit Shift+DEL to remove them permanently.
    For the defrag tool, you can use either the defrag /? command from the command line or right-click the drive, click Properties > Tools > Defragmentation>Defragment Now
    Other than that it requires deeper analysis to find performance bottleneck.

Maybe you are looking for

  • Help me about the problem of acrobat 9.0 pro extended.

    I was upgraded Acrobat Reader 9 to Acrobat 9 Pro Extended. But I didn't knew why, everytime I opened the Acrobat to read some PDF files, and then, after about 9-10s, the program automatic closed with no error screen or some thing like that?! I tried

  • Always boots Startup Manager

    Hello, I own a mac mini server 2011. I replaced the lower HD with SSD and then booted by hitting cmd-R to install lion. Install worked fine but I have a problem when I boot almost always it loads the startup manager. I have tried to set startup disk

  • Hi,I cannot use Acrobat after 30 days on my new PC Win7, seems to be an issue with activation.

    Hi,I cannot use Acrobat after 30 days on my new PC Win7, seems to be an issue with activation. Thanks Wolfgang

  • How to make the uploaded content available to learners.

    Dear Experts, I'm new to this area on SAP-LSO. With the help of some experts from this forum, I was able to successfully load a SCORM compliant learning content to the master repository through the authoring tool. The content is now visible in the KM

  • Join Remote Computers to AD Domain

    Hi We have nearly 60 computers in 4 different cities in different retail outlets in each city. We use them as point of sale. We want them to be part of AD domain that is working in our head office. All these 60 computers have internet connectivity. S