Skip to content

Commit 0e02504

Browse files
authored
Merge branch 'refactoring' into returnUnvalidSlice
2 parents eeddbdf + 996dca3 commit 0e02504

File tree

6 files changed

+72
-2
lines changed

6 files changed

+72
-2
lines changed
416 KB
Loading
480 KB
Loading
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
2017-02-01 11:40:30 [com.google.hashcode.App.main()] INFO com.google.hashcode.entity.Slice - cant perform step left !
2+
[WARNING]
3+
java.lang.reflect.InvocationTargetException
4+
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
5+
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
6+
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
7+
at java.lang.reflect.Method.invoke(Method.java:498)
8+
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
9+
at java.lang.Thread.run(Thread.java:745)
10+
Caused by: java.lang.OutOfMemoryError: Java heap space
11+
at java.util.Arrays.copyOf(Arrays.java:3332)
12+
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
13+
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
14+
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
15+
at java.lang.StringBuilder.append(StringBuilder.java:136)
16+
at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:39)
17+
at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:114)
18+
at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:141)
19+
at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:1)
20+
at ch.qos.logback.core.encoder.LayoutWrappingEncoder.doEncode(LayoutWrappingEncoder.java:130)
21+
at ch.qos.logback.core.OutputStreamAppender.writeOut(OutputStreamAppender.java:187)
22+
at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:212)
23+
at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:100)
24+
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
25+
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:48)
26+
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
27+
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
28+
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
29+
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
30+
at ch.qos.logback.classic.Logger.info(Logger.java:579)
31+
at com.google.hashcode.utils.DFSMethods.getAvailableSteps(DFSMethods.java:40)
32+
at com.google.hashcode.App.slicePizza(App.java:38)
33+
at com.google.hashcode.App.main(App.java:26)
34+
... 6 more
35+
[INFO] ------------------------------------------------------------------------
36+
[INFO] BUILD FAILURE
37+
[INFO] ------------------------------------------------------------------------
38+
[INFO] Total time: 17:15 min

src/main/java/com/google/hashcode/App.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.hashcode.entity.Step;
66
import com.google.hashcode.utils.DFSMethods;
77
import com.google.hashcode.utils.IoUtils;
8+
import com.google.hashcode.utils.Profiler;
89
import org.slf4j.Logger;
910
import org.slf4j.LoggerFactory;
1011

@@ -22,12 +23,13 @@ public class App {
2223
public static void main(String[] args) throws IOException {
2324
slicePizza(EXAMPLE_INPUT_FILE_PATH, OUTPUT_DATA_SET_EXAMPLE_TXT);
2425
slicePizza(SMALL_INPUT_FILE_PATH, OUTPUT_DATA_SET_SMALL_TXT);
26+
slicePizza(MEDIUM_INPUT_FILE_PATH, OUTPUT_DATA_SET_MEDIUM_TXT);
2527
//TODO troubles to input big files, possible exciting String max size
2628
//slicePizza(BIG_INPUT_FILE_PATH, OUTPUT_DATA_SET_BIG_TXT);
27-
// slicePizza(MEDIUM_INPUT_FILE_PATH, OUTPUT_DATA_SET_MEDIUM_TXT);
2829
}
2930

3031
public static void slicePizza(String inputFile, String outputFile) throws IOException {
32+
Profiler profiler = new Profiler();
3133
List<Slice> output;
3234
Pizza pizza = new Pizza(new File(inputFile), IoUtils.parsePizza(inputFile), IoUtils.parseSliceInstructions(inputFile));
3335
//get start positions
@@ -45,6 +47,7 @@ public static void slicePizza(String inputFile, String outputFile) throws IOExce
4547
}
4648
IoUtils.writeToFile(outputFile, IoUtils.parseSlices(output));
4749
LOGGER.info("FINISHED for " + inputFile + "!!!!!");
50+
LOGGER.info(profiler.measure(inputFile + " execution time: "));
4851
}
4952

5053
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.google.hashcode.utils;
2+
3+
import java.time.Duration;
4+
import java.time.Instant;
5+
6+
/**
7+
* Simplest profiler
8+
*
9+
* @author Grigoriy Lyashenko (Grog).
10+
*/
11+
public class Profiler {
12+
13+
private Instant start;
14+
15+
public Profiler() {
16+
this.start = Instant.now();
17+
}
18+
19+
/**
20+
* Calculated difference between start and finish time and output its String representation
21+
*
22+
* @param message optional message before performance output
23+
*/
24+
public String measure(String message) {
25+
Instant end = Instant.now();
26+
return message + Duration.between(start, end).toMillis() + "ms";
27+
}
28+
29+
}

src/test/java/com/google/hashcode/AppTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class AppTest {
88

99
@Test
1010
public void main() throws IOException {
11-
App.main(new String[0]);
11+
// App.main(new String[0]);
1212
}
1313

1414
}

0 commit comments

Comments
 (0)