Linux runs hotter than Windows?

Right now in Windows, CoreTemp reports that my processor is a little under 50 C, but in Arch lm-sensors says that it stays around the upper 50s, often jumping up into the 60s when I open a new program or play a Youtube video.  Does anyone know why this would be?  CoreTemp reports that the CPU is running at around 1.5 GHz, but in Linux cpufreq-info reports that it's often lower, around 933 MHz.
The processor is an Intel i3 mobile, which can go up to 2.13 GHz.  In a Sony Vaio, just let me know if you need any other hardware specifics.
Any ideas why Linux would be running hotter than Windows?

Alright, thanks for the quick replies.  The reason I want to solve this is because the fan spins way faster in Linux than Windows, and it's gotten annoying how loud it is.
The CPU frequency is the same in Linux and Windows (if not a little slower in Linux).
According to htop there's no significant workload right now.
I don't see why the graphics card would be any hotter in Linux (although I'll check that out now).
The fan is spinning way faster in Linux, so it's definitely not that Linux runs the fan slower.
Do you think it would be safe to assume lm-sensors is just over estimating the thermal junction, and I can force the fans to spin a little slower?
e:  When I run sensors and get a line like this -
Core 0:       +58.0°C  (high = +80.0°C, crit = +90.0°C)
The crit temperature is TJunction, right?
Last edited by Yes (2011-04-10 17:19:06)

Similar Messages

  • 'Late 2009' iMac running hotter than usual (Power-related)

    For the past month or so, my 27" iMac (2.66 GHz i5) has been running hotter than usual (heat management has been terrible on these things for years). Using iStat Menus, I've tracked the culprit down to the power system, with the board and primary/secondary heat sinks regularly approaching 90º C (the secondary heat sink has actually hit 90º). The fans are ramping up as I would expect, but I'm a bit concerned over the frequency with which this happens. It seems like programs that, in the past, would not have taxed the CPU as much are suddenly ramping up to 100% usage, which obviously heats up the power supply. The only thing I can think of that's different is Mavericks (10.9.4). I know it has a few new bells and whistles that are supposed to use the CPU more efficiently and pull less power in the long run, but it seems like the exact opposite is happening.
    Does anyone have any ideas/suggestions (short of rolling back to Snow Leopard, which I might do)? Is this a sign that the Mac is on its way out?

    If the machine suddenly shuts down on its own or kernel panics, I'd be concerned.  Do not attempt to modify anything internally except ensuring the RAM is to stated to be Late 2009 iMac compatible.  Not all 1066 MHz PC3-8500 DDR3 SO-DIMMs (204-pin) RAM are alike.  http://www.crucial.com/ http://www.macsales.com/ and http://www.datamem.com/ all sell RAM by age of computer and model name.  Do not get ValueRAM.  Only get lifetime warranty RAM.

  • Qosmio X300 - one Geforce 9800 GTS runs hotter than the other

    Hi.....Does anyone have a clue why 1 of my 2 gfx cards seems to be running alot hotter than the other? I would assume they would both be roughly the same temp. This is an example...Nvidia Defaul @ 1680x1050
    512MB GeForce 9800M GTS (Toshiba) 63 C
    ForceWare version 186.42
    512MB GeForce 9800M GTS (Toshiba) 49 C
    ForceWare version 186.42
    256MB GeForce 9400M G (Toshiba) 56 C
    ForceWare version 186.42
    SLI Disabled
    When i exited playing F1 2010 yesterday, one of the cars was 90C and the other about 58C......Im sure that isnt right. !!!!
    Also i see that it says SLI disabled....again i dont understand this, as i thought my rig automatically switched to SLI mode when needed.
    These temp readings was taken from the program speccy.
    My laptop is a Toshiba Qosmio X300-15U....running windows 7 ultimate 64 bit. 4gb ram. Q6600@2ghz.
    Any help would be really apprieciated.
    Thanks

    Well i'm sorry you've had such clueless replies to your question.....if i had a cent for everytime a "regular" toshiba contributor says "use compressed air" or "only use Toshiba display drivers blah..blah`.....i'd be a very rich man!
    The simple reason why only 1 of your 9800m gts cards is hot is because it is the only card being utilised in most games especially recent ones like F1 2010.
    You see the toshiba graphics driver you have installed on your Qosmio is nearly 2 years old-and it doesn't contain any SLI profiles for games that have been released after this driver was created (mid 2009).
    Just because you have 2 Nvidia GPUs in the laptop it does not mean that they are being utilised everytime-in fact it is totally dependent on having an SLI profile for specific program/game within the driver itself.
    If you open the Nvidia control panel and go to advance settings/manage programs you can scroll down a list of sli profiles for programs installed on you machine and also view a complete list of all profiles within the driver.
    It is possible to add you own sli profiles on this screen by browsing for a games executable and adding it to the list of preinstalled profiles.
    However in my experience this rarely,if ever, produces much of a performance increase and can sometimes cause instability-and is no substitute for Nvidias own SLI profiles.
    So.. the only way you can gain an SLI boost in games is by having the latest driver with the latest profiles....but wait i hear you say..
    Toshiba haven't updated the driver for our laptop since 2009!!!
    Yes thats the massive downside of owning a gaming laptop especially one as unique as Qosmio x300-just see my post in the Gaming forum-`Toshiba display drivers and what they don't want you to know' and i'm not gonna go into all that again.
    All i say is that you can get some great advice on using modified Nvidia drivers on Laptopvideo2GO.com and if you go to the forums and look under Nautis1100 Hybrid and optimus drivers you'll find a new thread especially created for owners of qosmio X300s.
    Good luck!

  • MBP running hotter than usual and shutting off randomly

    Hey everyone,
    I have a MBP 2.16Ghz, it's about 20 months old. About a year ago I had some problems with it and Apple replaced my battery and my motherboard. The machine was running fine without any problems. This week I realized that the MBP was becoming hotter than normal and that the fans were running a lot more frequently. Eventually the MBP shut down on me randomly while running it on an almost full battery. I then decided to reset the SMC and re-install the Intel 10.4.11 combo update. While using the MBP on a full battery, once again the fans kicked in while just surfing the web. The fans would never turn on before while surfing the web. All of a sudden the MBP just shut down on me. I really have no idea what the problem could be. Unfortunately I'm out of warranty. If anyone has any suggestions or similar issues please do post. Thanks.

    Thanks a lot for your reply. I did run the Apple Hardware Test and after running both normal and extended tests no trouble was found. I managed to download the widget called iStat Pro, I realized that my CPU was idling at 50%, and the CPU temperature was 80 degrees Celsius. This caused my fans to run consistently at 6000RPM. I discovered that the random shut down while running on the battery was caused by too much current being drained by the system. So as you suggested, it was indeed happening for safety reasons.
    By looking at the Activity Monitor and selecting all processes I saw that a process called printjobmgr was utilizing 100% of the CPU. I found this strange as I had performed several restarts and would have expected this process to terminate on its own. As soon as I used Force Quit, everything returned to normal. Strangely, every time I print something, the printjobmgr starts up and utilizes 100% of the CPU. This lasts until the printing is finished. I still was unable to find a permanent solution to this.

  • Openbox running hotter than kde4.4

    I put this in newbie 'cos I obviously don't know what I'm doing.
    I've got an IBM T41 laptop, some five or six years old, running the latest arch i686 with vanilla KDE4.4 and openbox.
    Idle KDE temp: 36-38°C
    Idle openbox temp: 44 - 48°C
    I checked top and X was the main culprit in both cases - with compositing in KDE and no compositing in openbox.
    Am I going mad? What to check next?

    'cos
    This made sense:
    stefanwilkens wrote:are you using any form of power management at all while in openbox? I'm no KDE user, but I guess that cpu scaling tools and such might come with KDE... it does not when using openbox.
    So I read this which did the trick for CPU scaling.
    The fan is blowing at anything above 30°C and I'm running at 33°C Installed tpfand but haven't made any inroads yet. The fan is so quiet anyway... (read me being lazy/deaf)

  • R6950 running hotter than before

    My R6950 Twin Frozr III used to idle at around 30 degrees. It is now idling around 45 degrees. I've checked for dust and it's clean. What do you recommend I do? Should I take off the cooler and reapply thermal paste? Or will that void my warranty?

    the temp is fine

  • Macbook Pro 13" Haswell running hot in Windows 8.1

    Hello, I have just purchased a Mid 2014 Macbook Pro with retina display and installed Windows 8.1 using bootcamp. My problem: running the windows partition seems to heat up my Macbook for no apparent reason. The heat builds up as soon as windows boots up and doesn't go away--even if I have 0% CPU utilization and the computer just sits at the desktop. I have checked CPU temperatures and they appear to be normal as well, but for some reason the underside of the computer gets hot to the touch. I just wanted to know if I'm the only one experiencing this using Windows through bootcamp with the latest drivers, and if it is fixable. Any help would be appreciated.

    Yes...
    I also just recently purchased a MacBook Pro retina 15 (mid-2014) with bootcamp (windows 8.1) installed.  While using my windows partition, the MBP seems to be running a bit hot, at least hotter than the OS X partition.
    As for comparison, I have the 2012 MacBook Pro retina 13 with bootcamp (windows 8.1).  It does not get as hot as the 15, and in fact, I don't think it runs hotter than OS X...
    Any thoughts?  Is it perhaps because I have the NVIVIDA dedicated graphics and in the windows partition, IRIS PRO isn't running?

  • Macbook runs hotte?!?!??!

    after installing some new utilities for the aluminum macbook 13 (2.4Ghz), it runs hotter than before, I think those new utilities are those you can find in 10.5.7, but I didnt install the full 10.5.7 version, anyone has the same problem?
    Thanks!

    No problem on my Al MacBook after the update. Also, I think you're mixing terminology here. You can't install only part of the 10.5.7 update unless you tried to "hack" the installer (i.e. what do you mean by "I didnt install the full 10.5.7 version?"). There was an update for the Safari application, but that's not the same as the 10.5.7 update since it was for Leopard, Tiger, and Windows. Then there was the beta release of Safari 4.0, but there YMMV (it's a beta after all). However, if you were running the Safari 4.0 beta _before_ you installed 10.5.7 then you definitely should update to the latest version of the beta.

  • Is Safari hotter than Firefox on MacBook Air 2GB?

    Will Safari make my MacBook Air - 2GB, mid 2009 - run hotter than Firefox?

    CPU temp of 133?
    Hopefully that reading is in Fahrenheit so I'll need to change my Preferences in iStat as I normally work in Celsius
    These readings are from a 2011 MBA with a 1.7GHz i5 Processor and 4GB Memory so we are not comparing appples with oranges but it will give you a ballpark figure.  Software is Lion (10.7.3)
    Running Photoshop my CPU temp varies between 80 to 100 degrees F with the 'Enclosure' temps in the mid 70's.
    To comment on your original question...
    Regardless of whether I use Safari, Firefox or Chrome my CPU stays between 90 and 100 degrees F.

  • System running hotter on 10.10.3

    Has anyone else noticed their systems running hotter than usual after updating to 10.10.3? I noticed it immediately after the update about a week or so ago, and there has been no change since. I've also installed the supplemental update, BTW.
    I'm on a 2014 Retina MacBook Pro. I've noticed that Heatsink B and the memory are reporting about 5-10ºC warmer than usual, and the CPU is about 5-7ºC warmer. The fans are regularly audible. I haven't changed how I use the computer. I've also checked Activity Monitor and nothing looks out of the ordinary.

    Try a SMC reset:
    https://support.apple.com/en-us/HT201295
    Open Activity Monitor to ALL PROCESSES. Spotlight may be reindexing the Mac.
    Ciao.

  • Edge 13(AMD) hotter in Linux than windows

    Hi, 
       I got my Edge 13 few weeks and quite satisfied. However, I just installed windows
    for a certain entertainment use. 
       I spent many days for tuning my gentoo system. Including compiling a minimize
    kernel, built-in most of the driver needed.
       Unfortunately, I found Edge is cooler in windows for sure.
       I did compile the kernel myself, but I'm sure the cpu-scaling and on-demand
    profile pull CPU back to 800MHz. The temp. reading is :
    Adapter: PCI adapter
    Core0 Temp:  +63.0°C                                    
    Core0 Temp:  +69.0°C                                    
    Core1 Temp:  +64.0°C                                    
    Core1 Temp:  +70.0°C 
    Adapter: PCI adapterCore0 Temp:  +65.0°C                                    
    Core0 Temp:  +70.0°C                                    
    Core1 Temp:  +65.0°C                                    
    Core1 Temp:  +71.0°C
       I couldn't help but doubt there is something wrong.
    So I'm going to ask:
    How hot is your Edge is in Linux?
    Is there anyone notice what could be wrong? I can provide my kernel config if it help.
    Thank you.

    Yeah I just put the speed down in Ubuntu until I need it. Now for more info Vista and Win7 run cooler than XP. My old laptop ran mid 50's Cel. GPU 60's. In Xp mid 70's Cel. GPU 80's. So I put Vista back on it and sold it to get my Lenovo.
    IT Specialist and Consultant
    Lenovo Tablet Evangelist
    Current Machines: IdeaCentre A300, ThinkPad Tablet, IdeaPad U410, and Yoga 3 Pro Touch
    Deutsche Community   Comunidad en Español
    Lenovo - the latest in DOtabs, DOpads, DOcentre's, DOstations and DOservers!

  • How can i prove rac on linux is better than on windows ?

    Hi all,
    Is there any document or any thread on this forum which will help me prove that RAC on linux is better than on windows. Actually i did not recommend to my management windows os for RAC, now the management wants the reason why did not recommend windows. I want some sort of proof or any document to prove my point. Please help ......

    > now the management wants the reason why did not recommend windows
    Then give them reasons. TCO. In-house experience and skills with Linux. Official support from vendors like Sun for Linux on their servers. Linux being used as the core development platform for Oracle. Linux proven as a cluster-based operating system - it leads the supercomputer/cluster market by a significant percentage.
    According to www.top500.org (listing the 500 fastest/biggest computers clusters on this planet)*:
    Operating System Family Top500
    Linux 85.20 %
    Mixed 6.80 %
    Unix      6.00 %
    Windows 1.20 %
    BSD Based 0.40 %
    Mac OS 0.40 %
    * (In other words, if Linux is good enough to run 85% of the world's fastest computers, it is more than good enough to run your company's RAC)
    There are numerous sound reasons for choosing Linux over Windows. But do not make performance claims that you cannot ever hope to backup with technical evidence.

  • Performance of synchronized blocks on Linux much worse than on Windows

    Our application is a J2EE application currently deployed in WebLogic 6.1 which utilizes Oracle iFS as a content store. We access the iFS CMS through the api's provided in the cmdsk.jar. Our reference implementation has been Solaris and that's where most of our testing has been done so far. However, we recently began doing performance tests on Linux and ran into a strange problem. We found that we were not getting sufficient throughput and that this was coupled with underutilization of CPU resources on the Application Server (AS) node. With sufficient DB resources, which we had in this case, we expect to see full CPU utilization on the AS tier, so we knew something was wrong.
    A great deal of investigation revealed that all active threads were stuck at the same spot accessing an iFS cache. We found that this cache is implemented as a hashtable and accesses to hashtables are synchronized. However, we were not seeing the same problem on other platforms (Solaris and Windows) with dual CPU machines.
    In order to simplify things, we developed a test program to look at what we felt to be the root cause. This test program, which I will attach, essentially creates a hashtable then a number of threads (as specified by the user). These threads then use the hashtable.get method to access the hashtable concurrently and time how long it takes. The info is then returned at the end of the run.
    We ran a set of tests where we increased the number of threads from 1 to 100. This test was run once with Windows 2000 and once with Red Hat Linux 2.1 (kernel 2.4.9-e.12). The exact same hardware (dual 1.2 GHz PIII) was used in both cases. The results show that we were clearly able to reproduce the behaviour with this simple program. What these results show is that with one thread, access times are exactly the same for Windows and Linux. However, as we increase the number of threads, access times for Linux increase at a much greater rate than Windows. We also see underutilization of CPU resources on Linux while Windows uses all available.
    The first round of tests was run with Sun's JDK 1.3.1. We repeated the testing with 1.4.1 and found that there was no significant difference. I just tried it quickly with 1.4.2 and found the behaviour to be much the same. We also altered the program to use an unsynchronized hashmap instead of a hashtable and, as expected, performance on Linux was much better. CPU was fully utilized during the test.
    In order to determine if this was a problem "in the VM" or "in the kerenel", I tried repeating it with the JRocket VM provided by WebLogic. When running the same test with the JRocket VM, we saw performance roughly equivalent to what we saw with a hashmap and the Sun VM. That is, JRocket did not have the same problem as the Sun VM.
    So, it appears that there is something with the implementation of synchronized blocks in the Sun VM that is problematic, especially when compared to other platforms. It is likely that the problem lies in a combination of how the synchronization is implemention is based on the underlying operating system infrastructure. At this point, we don't really have a way to deal with the problem, aside from deploying multiple WebLogic nodes on the same 2 CPU physical AS node. Changes to the iFS infrastructure would help, but that's beyond our control. I've searched the bug database and have not seen mention of this problem. With the test program, it can be easily reproduced, but I wanted to run it by the folks on this list before submitting a bug.
    Thanks,
    Justin

    # File #1: Driver.java
    import java.io.*;
    import java.util.HashMap;
    import java.util.Hashtable;
    * Created on May 13, 2003
    * @author llai
    * Driver to test the access of hash table on various platforms.
    public class Driver
         public static void main(String[] args)
              * Obtain the following input values:
              * 1. Number of Elements
              *      - The number of elements in the hash table
              * 2. Size of Element
              * - The size of each element in the hash table
              * 3. Number of threads
              * - The number of concurrent threads in the test
              * 4. Focused Access
              * - Determines whether each thread access the same element or a random element
              * 5. Number of Accesses
              * - The number of accesses which each thread will complete before exiting
              * 6. Start offset
              * - The number of accesses at the beginning which will not be timed
              * 7. End offset
              * - The number of accesses at the end which will not be timed.
              * Initialize all input variables.
              * SET DEFAULT VALUES HERE...
              int numberOfElements = 10000;
              int sizeOfElement = 100;
              int numberOfThreads = 25;
              boolean focusedAccess = true;
              int numberOfAccesses = 1000000;
              int startOffset = 100000;
              int endOffset = 100000;
              boolean mapOrTable = false;
              * Input number of elements.
              try
                   BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
                   String tempInput;
                   boolean inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Enter a non-negative value for the number of elements to be in the hashtable: ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  numberOfElements = Integer.parseInt(tempInput);
                                  if (numberOfElements >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered a negative value for the number of elements. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the number of elements. Try again.");
                   * Input size of elements.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Enter the size of each element in the hash table (ie. length of a string): ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  sizeOfElement = Integer.parseInt(tempInput);
                                  if (sizeOfElement >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered a negative value for the size of elements. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the size of elements. Try again.");
                   * Input number of threads.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Enter the number of concurrent threads in the test: ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  numberOfThreads = Integer.parseInt(tempInput);
                                  if (numberOfThreads >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered a negative value for the number of threads. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the number of threads. Try again.");
                   * Input focused access option.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Focused access? Determines whether each thread access the same element or a random element (y/n or blank for default): ");
                        String tempFocusedAccess = in.readLine();
                        if (tempFocusedAccess.equals("y"))
                             focusedAccess = true;
                             inputInvalid = false;
                        else if (tempFocusedAccess.equals("n"))
                             focusedAccess = false;
                             inputInvalid = false;
                        else if (tempFocusedAccess.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             System.out.println(
                                  "You entered an invalid input for focused access. Try again.");
                   * Input number of accesses.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Enter a non-negative value for the number of accesses each thread will complete: ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  numberOfAccesses = Integer.parseInt(tempInput);
                                  if (numberOfAccesses >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered a negative value for the number of accesses per thread. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the number of accesses per thread. Try again.");
                   * Input start offset.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print("Enter the start offset: ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  startOffset = Integer.parseInt(tempInput);
                                  if (startOffset <= numberOfAccesses
                                       && startOffset >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered an invalid input for start offset. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the start offset. Try again.");
                   * Input end offset.
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print("Enter the end offset: ");
                        tempInput = in.readLine();
                        if (tempInput.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             try
                                  endOffset = Integer.parseInt(tempInput);
                                  if (endOffset <= numberOfAccesses && endOffset >= 0)
                                       inputInvalid = false;
                                  else
                                       System.out.println(
                                            "You entered an invalid input for end offset. Try again.");
                             catch (NumberFormatException nfe)
                                  System.out.println(
                                       "You entered an invalid value for the end offset. Try again.");
                   * Create a Hashtable, or a Hashmap?
                   inputInvalid = true;
                   while (inputInvalid)
                        System.out.print(
                             "Use HashMap or HashTable (enter m for HashMap, t for HashTable)? ");
                        String tempMapTable = in.readLine();
                        if (tempMapTable.equals("m"))
                             mapOrTable = true;
                             inputInvalid = false;
                        else if (tempMapTable.equals("t"))
                             mapOrTable = false;
                             inputInvalid = false;
                        else if (tempMapTable.equals(""))
                             System.out.println("default value used.\n");
                             inputInvalid = false;
                        else
                             System.out.println(
                                  "You entered an invalid input. Try again.");
              catch (IOException i)
                   System.out.println("IOException caught: " + i.getMessage());
              * End of obtaining input section. *****
              * Create a HashTable or HashMap of the size and distribution specified.
              Object hash;
              if (mapOrTable)
                   // create a HashMap
                   hash = new HashMap(numberOfElements);
              else
                   // create a HashTable
                   hash = new Hashtable(numberOfElements);
              char c[] = new char[sizeOfElement];
              for (int i = 0; i < numberOfElements; i++)
                   if (mapOrTable)
                        ((HashMap) hash).put(new Integer(i), new String(c));
                   else
                        ((Hashtable) hash).put(new Integer(i), new String(c));
              c = null; // Explicitly release c.
              * Create the specified number of threads.
              AccessorThread accessor[] = new AccessorThread[numberOfThreads];
              long seed;
              for (int i = 0; i < numberOfThreads; i++)
                   // Have a different seed for creating random number for each thread.
                   seed = System.currentTimeMillis() + 77 * i;
                   accessor[i] =
                        new AccessorThread(
                             hash,
                             numberOfElements,
                             focusedAccess,
                             numberOfAccesses,
                             startOffset,
                             endOffset,
                             seed);
                   // Start the thread.
                   accessor.start();
              * Make main wait for all threads to die before continuing.
              try
                   for (int i = 0; i < numberOfThreads; i++)
                        accessor[i].join();
              catch (InterruptedException ie)
                   System.out.println(
                        "InterruptedException caught: " + ie.getMessage());
              * Threads have now been run, so create a statistical report.
              System.out.println(
                   "The following settings were used for this test: \n"
                        + "Number of elements: "
                        + numberOfElements
                        + "\n"
                        + "Size of elements: "
                        + sizeOfElement
                        + "\n"
                        + "Number of threads: "
                        + numberOfThreads
                        + "\n"
                        + "Focused access: "
                        + focusedAccess
                        + "\n"
                        + "Number of accesses: "
                        + numberOfAccesses
                        + "\n"
                        + "Start offset: "
                        + startOffset
                        + "\n"
                        + "End offset: "
                        + endOffset);
              System.out.print("HashMap or HashTable: ");
              if (mapOrTable)
                   System.out.println("HashMap.\n");
              else
                   System.out.println("HashTable.\n");
              System.out.println("Statistic report: ");
              long avgTime;
              long avgTotalTime = 0;
              for (int i = 1; i <= numberOfThreads; i++)
                   avgTotalTime += accessor[i - 1].getAccessTime();
                   avgTime = accessor[i - 1].getAccessTime() / numberOfAccesses;
                   System.out.println(
                        "Thread "
                             + i
                             + "... "
                             + accessor[i
                             - 1].getStatus()
                             + " Total access time: "
                             + accessor[i
                             - 1].getAccessTime()
                             + " ms. Avg individual access time: "
                             + avgTime
                             + " ms.");
              avgTotalTime = avgTotalTime / numberOfThreads;
              // Make it an average over all threads.
              System.out.println(
                   "\nThe average total access time over all threads: "
                        + avgTotalTime
                        + " ms.");
    File#2: AccessorThread.java
    import java.util.Hashtable;
    import java.util.HashMap;
    import java.util.Random;
    * Created on May 13, 2003
    * @author llai
    * Threaded class that accesses a hashtable a certain number of times
    * and measures the access time for a certain number of accesses.
    public class AccessorThread extends Thread
         private Object hash;
         private int numberOfElements;
         private boolean focusedAccess;
         private int numberOfAccesses;
         private int startOffset;
         private int endOffset;
         private long seed;
         private long totalAccessTime;
         private String status;
         * Constructor
         * @param h the Hashtable or HashMap
         * @param keyToAccess the key to access for this thread
         * @param numberOfAccesses the number of access times
         * @param startOffset the start offset
         * @param endOffset the end offset
         public AccessorThread(
              Object h,
              int numberOfElements,
              boolean focusedAccess,
              int numberOfAccesses,
              int startOffset,
              int endOffset,
              long seed)
              this.hash = h;
              this.numberOfElements = numberOfElements;
              this.focusedAccess = focusedAccess;
              this.numberOfAccesses = numberOfAccesses;
              this.startOffset = startOffset;
              this.endOffset = endOffset;
              this.seed = seed;
              status = "Status: alive.";
         * @return the total access time.
         public long getAccessTime()
              return totalAccessTime;
         * @return the status of the thread.
         public String getStatus()
              return status;
         * @return the seed.
         public long getSeed()
              return seed;
         * Run method, accesses the hashtable at keyToAccess for
         * numberOfAccesses times, and measures the response time for
         * a certain number of those accesses.
         public void run()
              * Begin accessing the table, time only after startOffset accesses,
              * and only up to (numberOfAccesses - endOffset) accesses.
              * Access one value if focusedAccess on.
              * Access random values if focusedAccess off.
              Random numGenerator = new Random(seed);
              if (focusedAccess)
                   Object keyToAccess =
                        new Integer(numGenerator.nextInt(numberOfElements));
                   // Access without timing for the first startOffset accesses.
                   int i;
                   // Check if hash is a HashMap or Hashtable.
                   if (hash instanceof HashMap)
                        for (i = 0; i < startOffset; i++)
                             ((HashMap) hash).get(keyToAccess);
                        // Now start timing for the accesses.
                        long startTime = System.currentTimeMillis();
                        while (i < numberOfAccesses - endOffset)
                             ((HashMap) hash).get(keyToAccess);
                             i++;
                        long stopTime = System.currentTimeMillis();
                        totalAccessTime = stopTime - startTime;
                        // Finish accessing the remainder of endOffset times if endOffset is not >= (numberOfAccesses - startOffset).
                        while (i < numberOfAccesses)
                             ((HashMap) hash).get(keyToAccess);
                             i++;
                   else if (hash instanceof Hashtable)
                        for (i = 0; i < startOffset; i++)
                             ((Hashtable) hash).get(keyToAccess);
                        // Now start timing for the accesses.
                        long startTime = System.currentTimeMillis();
                        while (i < numberOfAccesses - endOffset)
                             ((Hashtable) hash).get(keyToAccess);
                             i++;
                        long stopTime = System.currentTimeMillis();
                        totalAccessTime = stopTime - startTime;
                        // Finish accessing the remainder of endOffset times if endOffset is not >= (numberOfAccesses - startOffset).
                        while (i < numberOfAccesses)
                             ((Hashtable) hash).get(keyToAccess);
                             i++;
              // Or else !focusedAccess, therefore access random values.
              else
                   * Get random keys to access and store in an array of Integer objects.
                   * Limit the array to 1000 integer objects.
                   int numberOfRandomInts = numberOfAccesses;
                   if (numberOfAccesses > 1000)
                        numberOfRandomInts = 1000;
                   Integer keysToAccess[] = new Integer[numberOfRandomInts];
                   for (int q = 0; q < numberOfRandomInts; q++)
                        keysToAccess[q] =
                             new Integer(numGenerator.nextInt(numberOfElements));
                   int i;
                   if (hash instanceof HashMap)
                        for (i = 0; i < startOffset; i++)
                             ((HashMap) hash).get(keysToAccess[i % numberOfRandomInts]);
                        // Now start timing for the accesses.
                        long startTime = System.currentTimeMillis();
                        while (i < numberOfAccesses - endOffset)
                             ((HashMap) hash).get(keysToAccess[i % numberOfRandomInts]);
                             i++;
                        // Stop the timing.
                        long stopTime = System.currentTimeMillis();
                        totalAccessTime = stopTime - startTime;
                        // Finish accessing the remainder of endOffset times if endOffset is not >= (numberOfAccesses - startOffset).
                        while (i < numberOfAccesses)
                             ((HashMap) hash).get(keysToAccess[i % numberOfRandomInts]);
                             i++;
                   else if (hash instanceof Hashtable)
                        for (i = 0; i < startOffset; i++)
                             ((Hashtable) hash).get(keysToAccess[i % numberOfRandomInts]);
                        // Now start timing for the accesses.
                        long startTime = System.currentTimeMillis();
                        while (i < numberOfAccesses - endOffset)
                             ((Hashtable) hash).get(keysToAccess[i % numberOfRandomInts]);
                             i++;
                        // Stop the timing.
                        long stopTime = System.currentTimeMillis();
                        totalAccessTime = stopTime - startTime;
                        // Finish accessing the remainder of endOffset times if endOffset is not >= (numberOfAccesses - startOffset).
                        while (i < numberOfAccesses)
                             ((Hashtable) hash).get(keysToAccess[i % numberOfRandomInts]);
                             i++;
              status = "Status: dead.";
    # File #3: run.sh
    echo Compiling the program...
    javac Driver.java AccessorThread.java
    export CLASSPATH=.
    echo Running the program...
    java Driver

  • Quad G5 - One processor runs 20 degreesF hotter than the other!

    I use an app called Hardware Monitor to keep tabs on the various sensors in my G5. Today, for apparently no reason at all, CPU A (both cores) runs 20 degreesF hotter than CPU B!!! Not to mention 20 degreesF hotter than they ever did in the 4 months I've had the system. It does not matter if the computer is idle or if I give it a heavy work load, CPU A is always about 20 degrees hotter (it varies about 5 degrees -- for example, A is 122.3dF right now, and B is 103.0dF). I did a clean OS install on a different drive and took readings again, sure enough, it is the same. I removed all peripherals, check inside for dust, debris, etc... I can find no reason why this would happen! So far it has not been a problem, all the fans and pumps run at normal speeds. In the past my temps varied from about 98dF when idle, to about 150dF when under heavy load. CPU A now is 122dF - 165dF! Anyone have any ideas?

    This is only speculation, but it may because your coolant is not flowing at peak efficiently. What could cause this? There are micro-channels the coolant flows through to cool the processors. They may be starting to clog up for some reason or another. If the processors get to hot, the unit will go into thermal shutdown, so you don't need to worry -- yet. I would keep your eye on it and if the unit shuts down while you are working on it, check your logs for lines with "thermal" in them and get the unit looked at. Your LCS may need to be replaced at that point.
    Also, make sure you have/get AppleCare!
    -Bmer
    Mac Owners Support Group
    Join Us @ MacOSG.com
     An Apple User Group 
    ITMS: MacOSG Podcast >>

  • Renaming files with invalid characters in their names on NTFS partitions, introduced by operating systems other than Windows

    Essentially, Linux created some files with colons (:) in the name on a NTFS partition where I have Windows installed. I have since uninstalled Linux, but now I can only view these files in Windows Explorer. I can't open them, I can't even rename them to
    correct the problem. It's as if they don't exist, because of the invalid search paths.
    If I try to rename them in Windows Explorer I get following message.
    The file name you specified is no valid or too long.
    Specify a different file name.
    Well isnt' that something?... isn't that nice? Windows is able to display these files, but it doesn't allow me to open them and it certainly doesn't like me to rename them. So why is it whining about it then, when I'm trying to help? It says "try a different
    file name". Yeah, right! Like I haven't tried that one already! It doesn't matter what file name I input it will never accept it.
    So what am I supposed to do now? Ditch Windows and go back to Linux? Surely, Microsoft doesn't like the sound of that. Sure, I could reinstall Linux or run a Linux live system to correct the problem. But what good is Windows then? I might as well switch to
    Linux altogether.
    After doing some research I now know by fact that it's (kind of) possible to rename files from UNIX and UNIX-like operating systems to those compliant with Windows by using something called file name character translation. To some level this is essential and
    necessary for Windows interoperability with other operating systems (Windows is not the only operating system in the world). But this seems to be very complicated and I can't get my head around it. My brain is in overload. I don't know where to start.
    Once there was a...
    There's the Windows Services for UNIX (SFU) 1.0, 2.0, 3.0, 3.5. The first two versions were based on MKS Toolkit, a package licensed by Microsoft from MKS Inc. The later versions were based on the similar Interix product, after Microsoft purchased the company
    that made it.
    Then there's the new Subsystem for UNIX-based Applications (SUA). These are services for UNIX components. They are supposed to have Client for NFS v3 included as well. But the server components from the SFU line is missing (e.g. Server for NFS). These are included
    in Server editions of Windows.
    Then there's the Microsoft Knowledge Base article
    289627: "How to Enable File Name Character Translation". This article seems to describe exactly my situation.
    Windows and UNIX operating systems have restrictions on valid characters that can be used in a file name. The list of illegal characters for each operating system, however, is different. For example, a UNIX file name can use a colon (:), but a Windows
    file name cannot use a colon (:). If a UNIX user attempts to create a file with a Windows illegal character on a Windows Services for UNIX network file system (NFS) share, the attempt is unsuccessful and the UNIX client computer receives an input or output
    error.
    It goes further than that. At first glance, this KB article also seems to offer a solution to this exact problem, with examples as shown below.
    For example, the following maps the UNIX colon (:) to a Windows dash (-):
    0x3a : 0x2d ; replace client : with - on server
    I checked these values in charmap.exe and they are correct. Except for 2D not being a "dash", it's rather a hyphen ("hyphen minus" to be exact), but these two have pretty much the same appearance and they get interchanged a lot, I'm sure
    they are used to it by now. (Yes, the characters! They don't mind.)
    Then there's this registry key.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Server For NFS\CurrentVersion\Mapping
    Well, of course, I don't have Server for NFS. So this is a dead end. Well, actually, it was a dead end from the beginning...
    1. First of all, I'm not working with a network share on a NAS or SAN storage. The files are on the local disk drive where Windows is installed, so that's a DAS for you.
    2. I don't have SFU! Well obviously, I'm on Windows Vista! So that means SUA!
    3. SUA are service components only. No server components. Can you guess what that means? Yeah... no "Server for NFS" since it's a server component.
    4. Windows Vista is a client side operating system! Server for NFS is only offered for use with Windows Server systems.
    5. Back to square one!
    So there you have it. They all lived happy for the rest of their lives...
    I'm stuck here. Can someone tell me what to do? I mean beyond the obvious option to use Linux to fixa a Windows problem? The NTFS file system itself supports colons in file names. It's Windows that doesn't, and so by default it proclaims it invalid character.
    Surely, even a Windows client operating system like Windows Vista should be able to allow the user to at least rename files with invalid characters to something more sensible (from the system point of view) and valid, if not being able to open them as they
    are. Just add some crazy voodoo code to it and it will work. If you can make it possible on Windows Server with UNIX user-mode subsystem on NT kernel, then what's stopping you from giving the Windows client system the same benefit?
    So what now? Purchase a Windows Server 2012 R2 license, copy my invalid files to a NAS share with NFS on a UNIX or Linux system, and have a go at the Windows registry and Server for NFS? Yeah... you're right, it's probably a bit over the top...
    On a second thought... I might as well install Linux again. There are countless situations where Linux has helped me solve problems related to, and more often than not caused by Windows.

    Essentially, Linux created some files with colons (:) in the name on a NTFS partition where I have Windows installed. I have since uninstalled Linux, but now I can only view these files in Windows Explorer. I can't open them, I can't even rename them to
    correct the problem. It's as if they don't exist, because of the invalid search paths.
    If I try to rename them in Windows Explorer I get following message.
    The file name you specified is no valid or too long.
    Specify a different file name.
    Well isnt' that something?... isn't that nice? Windows is able to display these files, but it doesn't allow me to open them and it certainly doesn't like me to rename them. So why is it whining about it then, when I'm trying to help? It says "try a different
    file name". Yeah, right! Like I haven't tried that one already! It doesn't matter what file name I input it will never accept it.
    So what am I supposed to do now? Ditch Windows and go back to Linux? Surely, Microsoft doesn't like the sound of that. Sure, I could reinstall Linux or run a Linux live system to correct the problem. But what good is Windows then? I might as well switch to
    Linux altogether.
    After doing some research I now know by fact that it's (kind of) possible to rename files from UNIX and UNIX-like operating systems to those compliant with Windows by using something called file name character translation. To some level this is essential and
    necessary for Windows interoperability with other operating systems (Windows is not the only operating system in the world). But this seems to be very complicated and I can't get my head around it. My brain is in overload. I don't know where to start.
    Once there was a...
    There's the Windows Services for UNIX (SFU) 1.0, 2.0, 3.0, 3.5. The first two versions were based on MKS Toolkit, a package licensed by Microsoft from MKS Inc. The later versions were based on the similar Interix product, after Microsoft purchased the company
    that made it.
    Then there's the new Subsystem for UNIX-based Applications (SUA). These are services for UNIX components. They are supposed to have Client for NFS v3 included as well. But the server components from the SFU line is missing (e.g. Server for NFS). These are included
    in Server editions of Windows.
    Then there's the Microsoft Knowledge Base article
    289627: "How to Enable File Name Character Translation". This article seems to describe exactly my situation.
    Windows and UNIX operating systems have restrictions on valid characters that can be used in a file name. The list of illegal characters for each operating system, however, is different. For example, a UNIX file name can use a colon (:), but a Windows
    file name cannot use a colon (:). If a UNIX user attempts to create a file with a Windows illegal character on a Windows Services for UNIX network file system (NFS) share, the attempt is unsuccessful and the UNIX client computer receives an input or output
    error.
    It goes further than that. At first glance, this KB article also seems to offer a solution to this exact problem, with examples as shown below.
    For example, the following maps the UNIX colon (:) to a Windows dash (-):
    0x3a : 0x2d ; replace client : with - on server
    I checked these values in charmap.exe and they are correct. Except for 2D not being a "dash", it's rather a hyphen ("hyphen minus" to be exact), but these two have pretty much the same appearance and they get interchanged a lot, I'm sure
    they are used to it by now. (Yes, the characters! They don't mind.)
    Then there's this registry key.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Server For NFS\CurrentVersion\Mapping
    Well, of course, I don't have Server for NFS. So this is a dead end. Well, actually, it was a dead end from the beginning...
    1. First of all, I'm not working with a network share on a NAS or SAN storage. The files are on the local disk drive where Windows is installed, so that's a DAS for you.
    2. I don't have SFU! Well obviously, I'm on Windows Vista! So that means SUA!
    3. SUA are service components only. No server components. Can you guess what that means? Yeah... no "Server for NFS" since it's a server component.
    4. Windows Vista is a client side operating system! Server for NFS is only offered for use with Windows Server systems.
    5. Back to square one!
    So there you have it. They all lived happy for the rest of their lives...
    I'm stuck here. Can someone tell me what to do? I mean beyond the obvious option to use Linux to fixa a Windows problem? The NTFS file system itself supports colons in file names. It's Windows that doesn't, and so by default it proclaims it invalid character.
    Surely, even a Windows client operating system like Windows Vista should be able to allow the user to at least rename files with invalid characters to something more sensible (from the system point of view) and valid, if not being able to open them as they
    are. Just add some crazy voodoo code to it and it will work. If you can make it possible on Windows Server with UNIX user-mode subsystem on NT kernel, then what's stopping you from giving the Windows client system the same benefit?
    So what now? Purchase a Windows Server 2012 R2 license, copy my invalid files to a NAS share with NFS on a UNIX or Linux system, and have a go at the Windows registry and Server for NFS? Yeah... you're right, it's probably a bit over the top...
    On a second thought... I might as well install Linux again. There are countless situations where Linux has helped me solve problems related to, and more often than not caused by Windows.

Maybe you are looking for