Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #34961

Re: So I did "FizzBuzz", in Java!

From Martin Gregorie <martin@address-in-sig.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: So I did "FizzBuzz", in Java!
Date 2016-07-18 21:59 +0000
Organization A noiseless patient Spider
Message-ID <nmjjft$htm$1@dont-email.me> (permalink)
References <FizzBuzz-20160717163715@ram.dialup.fu-berlin.de> <nmj00i$jae$1@dont-email.me> <1933e39b-6363-4174-8392-602415a61799@googlegroups.com> <nmj61j$95o$1@dont-email.me> <cc1c596f-a043-4ba7-9e55-b98fc12cc89c@googlegroups.com>

Show all headers | View raw


On Mon, 18 Jul 2016 14:00:26 -0700, Eric Douglas wrote:

> On Monday, July 18, 2016 at 2:10:07 PM UTC-4, Eric Sosman wrote:
>>      3) This is not the first "efficiency" question you've asked, which
>> leads me to fear that you may be well on the way to becoming an addict.
>> Stop!  Stop now, while you still can!  "Efficiency" is a drug as habit-
>> forming and as destructive as anything you can find in a darkened back
>> alley.  If you get hooked, you'll never get clean.  Trust me, I know:
>> The monkey has ridden my back for half a century despite my strenuous
>> efforts to dislodge it.  Don't follow my pathway to ruin!
> 
> It depends how big the efficiency problem is and how many places it's
> used.  If you're saving a few seconds it may not be an issue, unless
> that code is called many times.
> I worked for one of the largest retailers in the world and we had some
> major performance issues.  One program we'd get down to under an hour,
> the initial contractors wrote to run over 8 hours..

on my laptop, which runs Linux (Fedora 23) on a 1.6GHz Core Duo, Daniel's 
code took about twice the elapsed time and used twice the mill time (both 
user and system mill) as a FizzBuzz version I made which uses a counted 
for loop to drive it. I was careful to use exactly the same logic as 
Daniel used inside the loop and the same lifetime for each StringBuilder 
instance.

I've now added a command line parameters so I can run much longer series
The looped version remains fastest at up to 100,000 tries, but not by so 
much:

100     numbers    Original    looped
        real time     .399s     .205s
        user cpu      .480s     .188s
        system cpu    .055s     .027s

100,000 numbers    Original    looped
        real time     .901s     .687s
        user cpu     1.382s     .934s
        system cpu    .143s     .125s

I'm really intrigued, though by the way that the cpu usage increases more 
for the looped code than for Daniel's original.

Here's my code:

public class FizzBuzz2
{
   public static void main(String[] args)
   {
      int n = 100;      
      if (args.length > 0)
         n = Integer.parseInt(args[0]);
      System.out.println("Run from 1 to " + n);
      for (int i = 1; i <= n; i++)
      {
         StringBuilder result = new StringBuilder();
         if (0 == i % 3)
            result.append("Fizz");
         if (0 == i % 5)
            result.append("Buzz");
         if (result.length() == 0)
            result.append(i);
         System.out.println(result.toString());
      }
   }
}


-- 
martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: So I did "FizzBuzz", in Java! Daniel Pitts <usenet@coloraura.com> - 2016-07-18 09:26 -0700
  Re: So I did "FizzBuzz", in Java! Eric Douglas <e.d.programmer@gmail.com> - 2016-07-18 10:10 -0700
    Re: So I did "FizzBuzz", in Java! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-07-18 14:09 -0400
      Re: So I did "FizzBuzz", in Java! Eric Douglas <e.d.programmer@gmail.com> - 2016-07-18 14:00 -0700
        Re: So I did "FizzBuzz", in Java! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-07-18 17:30 -0400
          Re: So I did "FizzBuzz", in Java! Eric Douglas <e.d.programmer@gmail.com> - 2016-07-19 05:06 -0700
            Re: So I did "FizzBuzz", in Java! Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-07-19 08:13 -0400
              Re: So I did "FizzBuzz", in Java! Eric Douglas <e.d.programmer@gmail.com> - 2016-07-19 05:18 -0700
        Re: So I did "FizzBuzz", in Java! Martin Gregorie <martin@address-in-sig.invalid> - 2016-07-18 21:59 +0000
        Re: So I did "FizzBuzz", in Java! Arne Vajhøj <arne@vajhoej.dk> - 2016-07-18 19:51 -0400
  Re: So I did "FizzBuzz", in Java! Arne Vajhøj <arne@vajhoej.dk> - 2016-07-18 19:46 -0400

csiph-web