Search Results

Search found 20031 results on 802 pages for 'full outer join'.

Page 350/802 | < Previous Page | 346 347 348 349 350 351 352 353 354 355 356 357  | Next Page >

  • How to remove tearing in videos with Nvidia driver?

    - by Daimon
    I'm using ubuntu 11.10 as my HTPC OS on ION board. Tearing was always a big problem but this guide (http://www.omgubuntu.co.uk/2010/01/how-to-fix-video-tearing-in-videos-nvidia-ubuntu/) used to solve it in previous versions. I mean it used to because it doesn't solve it anymore. I tried making same changes (although compiz config is little different and same options are in different panels) but with no success. I also tried to manually set resolution and refresh rate of HDTV in nvidia settings - no changes at all. I know that open source drivers would solve a problem but it's not an option because I need VDPAU acceleration. I've also read that completely disabling of Composite solves the problem - can't do that because compizconfig-settings-manager crashes on attempt. More info about setup: Ubuntu 11.10 64bit Nvidia ION board newest official version of proprietary driver SMplayer with vdpau settings Full HD HDTV

    Read the article

  • Day 3 of Oracle OpenWorld 2012 October 2nd

    - by Maria Colgan
    Hopefully you enjoyed yesterday, the first full day of technical sessions at Oracle OpenWorld and are ready for more today! Today we give our first technical session, Oracle Optimizer: Harnessing the Power of Optimizer Hints (Session CON8455) at 1:15pm, in Moscone South - room 103. In this session we will discuss in detail how Optimizer hints are interpreted, when they should be used, why they appear to be ignored and what you can do if you have inherited a hint ridden application. The Optimizer team will also be at the Oracle Database Demogrounds all day.  Demogrounds open at 9:45 am and run until 6pm. So stop by and find out what's new with the Optimizer and the statistics that feed it. Don't forget to pick up your Optimizer bumper sticker while you are there! +Maria Colgan

    Read the article

  • Why does quickly package --extras fail (where quickly package doesn't)?

    - by Pablo
    When I attempt to use quickly package --verbose --extras on my application I get these errors at the end: sed -i "s|__soundboard_data_directory__ =.*|__soundboard_data_directory__ = '/opt/extras.ubuntu.com/soundboard/share/soundboard/'|" debian/soundboard/opt/extras.ubuntu.com/soundboard/soundboard*/soundboardconfig.py sed: can't read debian/soundboard/opt/extras.ubuntu.com/soundboard/soundboard*/soundboardconfig.py: No such file or directory make[1]: *** [override_dh_install] Error 2 make[1]: Leaving directory `/home/pablo/soundboard' make: *** [binary] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 I haven't a clue what is wrong here. When I run package --extras on a clean template it runs fine. soundboardconfig.py is an unmodified appnameconfig.py the template makes. I'm not sure if my full source code is needed for this or not, but can be provided. EDIT: Forgot to mention quickly package creates a working package, only --extras fails.

    Read the article

  • 7-minute Community GlassFish Clustering Screencast

    - by alexismp
    Community member Faissal has recently put up a 7-minute screencast of an un-edited setup of a GlassFish cluster. His clustering setup spans across a mac and a virtualized Ubuntu host. It can probably be further simplified using the SSH provisioning feature (asadmin install-node) to avoid logging into remote machines. You may remember John's GlassFish clustering in under 10 minutes, a very successful video which was based on version 2. Since that we've put out a number of demos on YouTube for our 3.1.x versions including a full webinar replay.

    Read the article

  • Inspirational software for end-users written in Haskell?

    - by Lenny222
    I think great technology ist invisible. Besides the usual suspects (GHC, Xmonad, proprietary trading software) what great examples are there for end-user software written in Haskell? I think good examples are FreeArc, Hledger and "Nikki And The Robots". Do you have more examples (full blown GUI apps, small CLI tools, etc)? Edit: For example i am fascinated by Wings3D, because while written in Erlang, users can not tell that. It just works. Among Haskell's weak spots are cross-platform GUIs. There are not many GUI apps written in Haskkel in general and most of them are no easy to use, install or even compile. What are good examples to learn from how to make hard things look easy?

    Read the article

  • Slow gvfs Samba Performance

    - by Wolfgang
    if I use/acces a Samba Share using Nautilus or manually using "gvfs-mount smb://SERVER-IP/Share" I get a poor Performance, only about 7 mb/s on my 100 Mbit Network. If I access the same Share on Windows I get Fullspeed 100 Mbit (About 11 mb/s), also if I mount using sudo mount -t cifs //SERVER-IP/Share /mountpount which uses cifs instead of gvfs I get fullspeed too, so can anyone tell me if there is a Performance Problem/Bug in gvfs or how gvfs is using SMB Shares differerently ? I tested read Perfomance (From my Network Samba Share) with multiples files and always, the cifs-Version is fullspeed and the GVFS-Version has some mb/s less. After some research I found some tips to optimize the Samba Settings of my Ubuntu Installation and some network tuning tips, but as the CIFS mounted share gets the full Network Speed I don't believe its that kind of problem.

    Read the article

  • The Island of Lost Apple Products

    - by Jason Fitzpatrick
    While Apple has has a mountain of commercial successes, every once in awhile the crew in Cupertino strikes out. Here are some of the less successful and prematurely retired Apple products from the last two decades. Courtesy of Wired, we find nine of the least favorably received products in the Apple portfolio. Pictured here, the QuickTake Camera: Life Span: 1994 – 1997 Back in 1994, Apple was actually at the forefront of digital photography. The QuickTake Camera’s photos (640 x 480 at 0.3 megapixels) were borderline unusable for anything other than your Geocities homepage. But technology has to start somewhere. Still, Apple killed the line after just three years. And while the iPhone and other smartphones have replaced most people’s digital cameras, Apple could have had a reaped the benefits of the digital point-and-shoot salad years. 6 Ways Windows 8 Is More Secure Than Windows 7 HTG Explains: Why It’s Good That Your Computer’s RAM Is Full 10 Awesome Improvements For Desktop Users in Windows 8

    Read the article

  • Inside the Guts of a DSLR

    - by Jason Fitzpatrick
    It’s safe to assume that there is a lot more going on inside your modern DSLR than your grandfather’s Kodak Brownie, but just how much hardware is packed into the small casing of your average DSLR is quite surprising. Over at iFixit they’ve done a tear down of Nikon’s newest prosumer camera, the Nikon D600. The guts of the DSLR are absolutely bursting with hardware and flat-ribbon cable as seen in the photo above. For a closer look at the individual parts and to see it further torn down, hit up the link below. Nikon D600 Teardown [iFixit via Extreme Tech] 6 Ways Windows 8 Is More Secure Than Windows 7 HTG Explains: Why It’s Good That Your Computer’s RAM Is Full 10 Awesome Improvements For Desktop Users in Windows 8

    Read the article

  • How a .NET Programmer learn Big Data/Hadoop? [on hold]

    - by Smith Pascal Jr.
    I have been ASP.NET developer for sometime now and I have been reading a lot about Big Data- Hadoop and its future as to how it is the next technology in IT and how it would be useful to create million of jobs in US and elsewhere in the world. Now since Hadoop is an open source big data tool which is managed by Apache Server Foundation Group, I'm assuming I have to be well aware of JAVA - Correct me if I'm wrong. Moreover, How a .NET programmer can learn Big Data and its related technologies and can work professionally full time into this technology? What challenges and opportunities does a .NET professional face while changing the technology platform? Please advice. Thanks

    Read the article

  • apt-get works with --force-yes but cannot reproduce the issue on a fresh box

    - by deepak
    apt-get does not work the first time but works the second time i install ntp like: apt-get -q -y install ntp=1:4.2.6.p3+dfsg-1ubuntu3.1 It failed saying: WARNING: The following packages cannot be authenticated! libcap2 libopts25 ntp E: There are problems and -y was used without --force-yes Afterwards i ran, apt-key update and ran the same commad with --force-yes: apt-get -q -y --force-yes install ntp=1:4.2.6.p3+dfsg-1ubuntu3.1 Thereafter running apt-get purge and reinstalling ntp runs. "without" --force-yes apt-get purge libcap2 libopts25 ntp apt-get -q -y install ntp=1:4.2.6.p3+dfsg-1ubuntu3.1 Also i created a fresh VM and could not reproduce the issue. On a fresh VM, the same apt-get command runs the first time, without "--force-yes" Two questions, why does running apt-get work the second time and cannot reproduce the error ? full errors and sequential steps at, https://gist.github.com/3017966

    Read the article

  • Add Reference with Search

    - by Daniel Cazzulino
    If you have been using VS2010 for any significant amount of time, you surely came across the awkward, slow and hard to use Add Reference dialog. Despite some (apparent) improvements over the VS2008 behavior, in its current form it's even LESS usable than before. A brief non-exhaustive summary of the typical grief with this dialog is: Scrolling a list of *hundreds* of entries? (300+ typically) No partial matching when typing: yes, you can type in the list to get to the desired entry, but the matching is performed in an exact manner, from the beginning of the assembly name. So, to get to the (say) "Microsoft.VisualStudio.Settings" assembly, you actually have to type the first two segments in their entirety before starting to type "Settings"....Read full article

    Read the article

  • How agile methodologies can be applied in a typical " services " company?

    - by AlfaTeK
    My company is a custom software services company for external clientes, which means our typical project is one in which the contract already states the full budget of the project. Our typical project starts by defining requirements (improving the proposal high-level requirements), then we code the project, test it and ship it. We have an acceptance phase were the client tests the software and in that phase we can usually implement small changes asked by the client, or we charge extra for change requests. In some projects we have intermediate releases so the clients can check the progress of the project and give feedback on it. In summary: something like waterfall... I've followed the "agile" movement for a bit now and I always see it being a good match for a "product" company, or a company building software for an internal client. But are there good stories / advantages on using agile methods in my kind of company/projects? What are your experiences, what do you think about this?

    Read the article

  • Web.NET is Closing Fast

    - by Chris Massey
    The voting for sessions has now closed, and sadly only half of the potential sessions could make it through. On the plus side, the sessions that floated to the top look great and, with the votes in, Simone and Ugo have moved right along and created a draft agenda to whet our appetites. Take a look, and let them know what you think. I’d also strongly recommend that you get ready to grab your tickets when they become available next week (specifically, September 18th), as places are going to be snapped up fast. In case you need a reminder as to why Web.NET is worth your time: Complete focus on web development Awesome sessions All-night hackathon Free (although I urge you to make a donation to help Simone and Ugo create the best possible event) Put October 20th in your calendar, and start packing. I’ve already booked my flights, and am perusing the list of hotels while I eat my lunch. Bonus Material There will be a full day of RavenDB training on Monday the 22nd of October, run by Ayende himself, and attending Web.NET will get you a 30% discount on the cost of the session.

    Read the article

  • How do I fix gnome shell themes?

    - by Chris
    This is my fifth full format and install of Ubuntu in under a month. I finally have my Gnome 3 desktop working again, but again, the Gnome shell themes is not select-able. I have asked the question of how to fix this common issue before, but I have seen no positive resolution. Does anybody know of a simple fix? This is a common issue and I have seen hundreds of postings related to it, but other users only seem to get half-way answers also and it goes unresolved. Would it be advisable to completely purge Gnome desktop and reinstall? If so how would I do this? I cannot use any extensions if the shell is not working, so I am desperately seeking resolution for the issue. Thanks in advance.

    Read the article

  • Cannot scale frequency of a Core i7 2720QM

    - by user51414
    I own a Dell Latitude E6520 with an Intel CPU (Core i7 2720QM). After installing cpufrequtils, I get the following message : cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009 Veuillez rapportez les erreurs et les bogues à [email protected], s'il vous plait. analyse du CPU 0 : **pas de pilotes cpufreq reconnu pour ce CPU** maximum transition latency: 4294.55 ms. In English : no cpufreq pilot found for this CPU. Thus my CPU runs always at full speed (2,2 GHz) which consume the battery and shorten its life. I don't either know how to activate turbo mode. Please help ! Regards, Al

    Read the article

  • I want a trivial example of where MongoDB can scale but a relational database will have trouble

    - by Ryan Weir
    I'm just learning to use MongoDB, and when discussing with other programmers would like a quick example of why NoSQL can be a good choice compared to a traditional RDBMS - however the scenarios I come up with and can find online seem pretty contrived. E.g. a blog with lots of traffic could be represented relationally, but will require some performance tuning and joins across tables (assuming full denormalization is being used). Whereas MongoDB would allow direct retrieval from one collection to the same effect. But the response I'm getting from other programmers is "why not just keep it relational and then add some trivial caching later?" Does anybody have a less contrived example where MongoDB will really shine and a relational db will fall over much quicker? The smaller the project/system the better, because it leaves less room for disagreement. Something along the lines of the complexity of the blog example would be really useful. Thanks.

    Read the article

  • PlayOnLinux Unable to find 32bit opengl libraries Dual ATI Videocards

    - by Rodolfo Pires
    Im curently running Ubuntu 12.04 LTS 64Bit So, i installed league of legends fine the first time with the opensource ATI Drivers provided by ubuntu itself with no issues at all, but it runs so slow ... max 20fps because those drivers dont fully support my Dual Graphic cards Than i restored system and i installed the Linux Version of the Proper ATI Drivers from the AMD Website wich supports my APU AMD-A8-4500M with the AMD Radeon 7640G + 7670M Graphics Cards enabling me full performance from my system .. Problem is, to run League of Legends i need a 32bit opengl library, and the driver, automaticly detects a 64bits Linux install and loads the 64bit libraries but not the 32 ones . i need some kind of command, to force the 32bit libraries to load, or to make League of Legends run on the 64 ones .. Im kinda noob to ubuntu .. i installed the 32 bits ones trough terminal and still doesnt work idk why, maybe the driver doesnt want to load them .. plzz help me on this, i dont want to go back to windows just to play league since im noob idk what more details to post here so plz tell me what do you need

    Read the article

  • My domain PageRank shows as unavailable, why is that?

    - by Emerson
    My domain, http://www.anovaordemmundial.com , has been snatched by some opportunist when I failed to renew the domain. I know, it's all my fault :/ . After I have being ripped off and bought my domain back, and everything is configured and working, the pagerank for that domain shows as unavailable. Also searches for "nova ordem mundial" (in portuguese), which used to show my domain as the first result in searches in any language, now don't show it anymore. Do you think this is something temporary and it will recover its pagerank after a full crawl by google? There exists hundreds of sites pointing to my domain, that is why I got the previous relevance in searches. The domain is back for more than 5 days already. In reality, bing already Is there anything I can do to help get my domain back to its pagerank??? Thanks for the help!

    Read the article

  • How reliable is the battery data in ubuntu the power statistics?

    - by nbubis
    Right now the power statistics show that: Energy when full: 25.5 Wh Energy (design): 93.2 Wh And indeed the battery doesn't seem to be lasting as long as it used too. My question: Is this data reliable? Does it really indicate that I should replace the battery, or could it be the charger, laptop, or OS that is stopping the battery from fully charging? Is any way of validating the battery is indeed to blame? I'd like to be sure before shelling out 90$ for a new battery. (If it helps, the battery is a 3 year old dell 9 cell rated at 90 Wh).

    Read the article

  • DX11 - Weird shader behavior with and without branching

    - by Martin Perry
    I have found problem in my shader code, which I dont´t know how to solve. I want to rewrite this code without "ifs" tmp = evaluate and result is 0 or 1 (nothing else) if (tmp == 1) val = X1; if (tmp == 0) val = X2; I rewite it this way, but this piece of code doesn ´t word correctly tmp = evaluate and result is 0 or 1 (nothing else) val = tmp * X1 val = !tmp * X2 However if I change it to: tmp = evaluate and result is 0 or 1 (nothing else) val = tmp * X1 if (!tmp) val = !tmp * X2 It works fine... but it is useless because of "if", which need to be eliminated I honestly don´t understand it Posted Image . I tried compilation with NO and FULL optimalization, result is same

    Read the article

  • GUI Application Resolution from Text Mode OS

    - by brettw
    I'm trying to turn a computer into a Linux thin client via Ubuntu. I have a Dell OptiPlex 755 loaded with Ubuntu 14.04 installed and fully patched. I've configured the OS to run in text mode and automatically launch the VMWare Horizon's client, which works. The issue is that when the Horizon client launches, its resolution is only 1/4 of the screen. I've played with the resolution settings in grub which appears to modify the text environment but not the application environment for Horizon's. Can someone point me in the right direction on how to increase the resolution for a GUI application launch from text mode so it's full screen. Thanks!

    Read the article

  • Reporting Release History : Q1 2010 SP1 (version 4.0.10.421)

    What's NewReport Viewers NEW: Report Viewer for WPF Added zoom modes: Percents/Page Width/Full Page to the Silverlight ViewerTelerik Report WCF Service Added self-hosting capability on WCF service What's FixedReporting API OBSOLETE: Telerik.Reporting.Report.DataMember property; use ObjectDataSource as DataSource and set its DataMember instead. OBSOLETE: Telerik.Reporting.Table.DataMember property; use ObjectDataSource as DataSource and set its DataMember instead. OBSOLETE: Telerik.Reporting.Chart.DataMember...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • .NET Code Evolution

    - by Alois Kraus
    Originally posted on: http://geekswithblogs.net/akraus1/archive/2013/07/24/153504.aspxAt my day job I do look at a lot of code written by other people. Most of the code is quite good and some is even a masterpiece. And there is also code which makes you think WTF… oh it was written by me. Hm not so bad after all. There are many excuses reasons for bad code. Most often it is time pressure followed by not enough ambition (who cares) or insufficient training. Normally I do care about code quality quite a lot which makes me a (perceived) slow worker who does write many tests and refines the code quite a lot because of the design deficiencies. Most of the deficiencies I do find by putting my design under stress while checking for invariants. It does also help a lot to step into the code with a debugger (sometimes also Windbg). I do this much more often when my tests are red. That way I do get a much better understanding what my code really does and not what I think it should be doing. This time I do want to show you how code can evolve over the years with different .NET Framework versions. Once there was  time where .NET 1.1 was new and many C++ programmers did switch over to get rid of not initialized pointers and memory leaks. There were also nice new data structures available such as the Hashtable which is fast lookup table with O(1) time complexity. All was good and much code was written since then. At 2005 a new version of the .NET Framework did arrive which did bring many new things like generics and new data structures. The “old” fashioned way of Hashtable were coming to an end and everyone used the new Dictionary<xx,xx> type instead which was type safe and faster because the object to type conversion (aka boxing) was no longer necessary. I think 95% of all Hashtables and dictionaries use string as key. Often it is convenient to ignore casing to make it easy to look up values which the user did enter. An often followed route is to convert the string to upper case before putting it into the Hashtable. Hashtable Table = new Hashtable(); void Add(string key, string value) { Table.Add(key.ToUpper(), value); } This is valid and working code but it has problems. First we can pass to the Hashtable a custom IEqualityComparer to do the string matching case insensitive. Second we can switch over to the now also old Dictionary type to become a little faster and we can keep the the original keys (not upper cased) in the dictionary. Dictionary<string, string> DictTable = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); void AddDict(string key, string value) { DictTable.Add(key, value); } Many people do not user the other ctors of Dictionary because they do shy away from the overhead of writing their own comparer. They do not know that .NET has for strings already predefined comparers at hand which you can directly use. Today in the many core area we do use threads all over the place. Sometimes things break in subtle ways but most of the time it is sufficient to place a lock around the offender. Threading has become so mainstream that it may sound weird that in the year 2000 some guy got a huge incentive for the idea to reduce the time to process calibration data from 12 hours to 6 hours by using two threads on a dual core machine. Threading does make it easy to become faster at the expense of correctness. Correct and scalable multithreading can be arbitrarily hard to achieve depending on the problem you are trying to solve. Lets suppose we want to process millions of items with two threads and count the processed items processed by all threads. A typical beginners code might look like this: int Counter; void IJustLearnedToUseThreads() { var t1 = new Thread(ThreadWorkMethod); t1.Start(); var t2 = new Thread(ThreadWorkMethod); t2.Start(); t1.Join(); t2.Join(); if (Counter != 2 * Increments) throw new Exception("Hmm " + Counter + " != " + 2 * Increments); } const int Increments = 10 * 1000 * 1000; void ThreadWorkMethod() { for (int i = 0; i < Increments; i++) { Counter++; } } It does throw an exception with the message e.g. “Hmm 10.222.287 != 20.000.000” and does never finish. The code does fail because the assumption that Counter++ is an atomic operation is wrong. The ++ operator is just a shortcut for Counter = Counter + 1 This does involve reading the counter from a memory location into the CPU, incrementing value on the CPU and writing the new value back to the memory location. When we do look at the generated assembly code we will see only inc dword ptr [ecx+10h] which is only one instruction. Yes it is one instruction but it is not atomic. All modern CPUs have several layers of caches (L1,L2,L3) which try to hide the fact how slow actual main memory accesses are. Since cache is just another word for redundant copy it can happen that one CPU does read a value from main memory into the cache, modifies it and write it back to the main memory. The problem is that at least the L1 cache is not shared between CPUs so it can happen that one CPU does make changes to values which did change in meantime in the main memory. From the exception you can see we did increment the value 20 million times but half of the changes were lost because we did overwrite the already changed value from the other thread. This is a very common case and people do learn to protect their  data with proper locking.   void Intermediate() { var time = Stopwatch.StartNew(); Action acc = ThreadWorkMethod_Intermediate; var ar1 = acc.BeginInvoke(null, null); var ar2 = acc.BeginInvoke(null, null); ar1.AsyncWaitHandle.WaitOne(); ar2.AsyncWaitHandle.WaitOne(); if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Intermediate did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Intermediate() { for (int i = 0; i < Increments; i++) { lock (this) { Counter++; } } } This is better and does use the .NET Threadpool to get rid of manual thread management. It does give the expected result but it can result in deadlocks because you do lock on this. This is in general a bad idea since it can lead to deadlocks when other threads use your class instance as lock object. It is therefore recommended to create a private object as lock object to ensure that nobody else can lock your lock object. When you read more about threading you will read about lock free algorithms. They are nice and can improve performance quite a lot but you need to pay close attention to the CLR memory model. It does make quite weak guarantees in general but it can still work because your CPU architecture does give you more invariants than the CLR memory model. For a simple counter there is an easy lock free alternative present with the Interlocked class in .NET. As a general rule you should not try to write lock free algos since most likely you will fail to get it right on all CPU architectures. void Experienced() { var time = Stopwatch.StartNew(); Task t1 = Task.Factory.StartNew(ThreadWorkMethod_Experienced); Task t2 = Task.Factory.StartNew(ThreadWorkMethod_Experienced); t1.Wait(); t2.Wait(); if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Experienced did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Experienced() { for (int i = 0; i < Increments; i++) { Interlocked.Increment(ref Counter); } } Since time does move forward we do not use threads explicitly anymore but the much nicer Task abstraction which was introduced with .NET 4 at 2010. It is educational to look at the generated assembly code. The Interlocked.Increment method must be called which does wondrous things right? Lets see: lock inc dword ptr [eax] The first thing to note that there is no method call at all. Why? Because the JIT compiler does know very well about CPU intrinsic functions. Atomic operations which do lock the memory bus to prevent other processors to read stale values are such things. Second: This is the same increment call prefixed with a lock instruction. The only reason for the existence of the Interlocked class is that the JIT compiler can compile it to the matching CPU intrinsic functions which can not only increment by one but can also do an add, exchange and a combined compare and exchange operation. But be warned that the correct usage of its methods can be tricky. If you try to be clever and look a the generated IL code and try to reason about its efficiency you will fail. Only the generated machine code counts. Is this the best code we can write? Perhaps. It is nice and clean. But can we make it any faster? Lets see how good we are doing currently. Level Time in s IJustLearnedToUseThreads Flawed Code Intermediate 1,5 (lock) Experienced 0,3 (Interlocked.Increment) Master 0,1 (1,0 for int[2]) That lock free thing is really a nice thing. But if you read more about CPU cache, cache coherency, false sharing you can do even better. int[] Counters = new int[12]; // Cache line size is 64 bytes on my machine with an 8 way associative cache try for yourself e.g. 64 on more modern CPUs void Master() { var time = Stopwatch.StartNew(); Task t1 = Task.Factory.StartNew(ThreadWorkMethod_Master, 0); Task t2 = Task.Factory.StartNew(ThreadWorkMethod_Master, Counters.Length - 1); t1.Wait(); t2.Wait(); Counter = Counters[0] + Counters[Counters.Length - 1]; if (Counter != 2 * Increments) throw new Exception(String.Format("Hmm {0:N0} != {1:N0}", Counter, 2 * Increments)); Console.WriteLine("Master did take: {0:F1}s", time.Elapsed.TotalSeconds); } void ThreadWorkMethod_Master(object number) { int index = (int) number; for (int i = 0; i < Increments; i++) { Counters[index]++; } } The key insight here is to use for each core its own value. But if you simply use simply an integer array of two items, one for each core and add the items at the end you will be much slower than the lock free version (factor 3). Each CPU core has its own cache line size which is something in the range of 16-256 bytes. When you do access a value from one location the CPU does not only fetch one value from main memory but a complete cache line (e.g. 16 bytes). This means that you do not pay for the next 15 bytes when you access them. This can lead to dramatic performance improvements and non obvious code which is faster although it does have many more memory reads than another algorithm. So what have we done here? We have started with correct code but it was lacking knowledge how to use the .NET Base Class Libraries optimally. Then we did try to get fancy and used threads for the first time and failed. Our next try was better but it still had non obvious issues (lock object exposed to the outside). Knowledge has increased further and we have found a lock free version of our counter which is a nice and clean way which is a perfectly valid solution. The last example is only here to show you how you can get most out of threading by paying close attention to your used data structures and CPU cache coherency. Although we are working in a virtual execution environment in a high level language with automatic memory management it does pay off to know the details down to the assembly level. Only if you continue to learn and to dig deeper you can come up with solutions no one else was even considering. I have studied particle physics which does help at the digging deeper part. Have you ever tried to solve Quantum Chromodynamics equations? Compared to that the rest must be easy ;-). Although I am no longer working in the Science field I take pride in discovering non obvious things. This can be a very hard to find bug or a new way to restructure data to make something 10 times faster. Now I need to get some sleep ….

    Read the article

  • Update: TFS Power Tools March 2011

    - by Enrique Lima
    There is an update available for the TFS Power Tools and the TFS Build Power Tools. Among the updates to the Tools: Changes to the Team Foundation Server Backups Add-In for TFS Admin Console. Added functionality to the Windows Shell Extension. Changes to the tfpt command line tool that allows you to script build management commands. For a full detail of the changes, read Brian Harry’s post  http://blogs.msdn.com/b/bharry/archive/2011/03/03/mar-11-team-foundation-server-power-tools-are-available.aspx To download the Power Tools: Team Foundation Server Power Tools Team Foundation Server Build Extensions Power Tool

    Read the article

  • Lenovo e420s overheating

    - by Matthew
    I recently bought a Lenovo e420s and decided to install Ubuntu (first time). The interface is great, but the computer overheats horribly (the fan is on full all the time and the cpu temperature is much higher than in Windows). In other words, it's not a fan problem, but an OS problem. Does anybody have a fix that is implementable by a luddite? I'd like to use linux, but it's not possible if it turns my computer into a radiator. Thanks.

    Read the article

< Previous Page | 346 347 348 349 350 351 352 353 354 355 356 357  | Next Page >