Button clicked at 402865962341700
Frame: 1
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO:
Don’t forget an extra bottle of water can change a lot, The future has yet to be written, You will Prevail!, Customer Experience and Quality can be Improved, Encouragement Throughput has yet to be maximized, Initial conditions can mean a lot, There is hope in a New Day, Don’t forget an extra bottle of water can change a lot, Customer Experience and Quality can be Improved, You will Prevail!, Nsdtp! Never Say Die Throughput!, Encouragement Throughput has yet to be maximized, The future has yet to be written, Customer Experience and Quality can be Improved, Nsdtp! Never Say Die Throughput!.
Customer Experience and Quality can be Improved, You will Prevail!, There is hope in a New Day, Customer Experience and Quality can be Improved, There is hope in a New Day, The future has yet to be written, Past activation energy can be clear sailing, The future has yet to be written, Initial conditions can mean a lot, Possible has yet to be defined, Small changes do add up, There is hope in a New Day, Past activation energy can be clear sailing, Never Say Die!, The future has yet to be written.
Possible has yet to be defined, There is hope in a New Day, Nsdtp! Never Say Die Throughput!, Past activation energy can be clear sailing, You can do it!, Customer Experience and Quality can be Improved, Small changes do add up, You will Prevail!, Possible has yet to be defined, You can do it!, Initial conditions can mean a lot, Customer Experience and Quality can be Improved, Others do not get to claim ground on what you can and cannot do, Possible is Power, Never Say Die!.
There is hope in a New Day, You can do it!, Possible has yet to be defined, There is hope in a New Day, Encouragement Throughput has yet to be maximized, You can do it!, You can do it!, The future has yet to be written, You will Prevail!, Encouragement Throughput has yet to be maximized, Possible is Power, Don’t forget an extra bottle of water can change a lot, Others do not get to claim ground on what you can and cannot do, Customer Experience and Quality can be Improved, You can do it!.
You can do it!, Others do not get to claim ground on what you can and cannot do, The future has yet to be written, Don’t forget an extra bottle of water can change a lot, Never Say Die!, Customer Experience and Quality can be Improved, Others do not get to claim ground on what you can and cannot do, Past activation energy can be clear sailing, You will Prevail!, Initial conditions can mean a lot, There is hope in a New Day, The future has yet to be written, Small changes do add up, Nsdtp! Never Say Die Throughput!, Encouragement Throughput has yet to be maximized.
Past activation energy can be clear sailing, Others do not get to claim ground on what you can and cannot do, Possible is Power, Never Say Die!, Past activation energy can be clear sailing, Past activation energy can be clear sailing, Past activation energy can be clear sailing, Encouragement Throughput has yet to be maximized, You can do it!, There is hope in a New Day, Possible is Power, Don’t forget an extra bottle of water can change a lot, You will Prevail!, The future has yet to be written, Don’t forget an extra bottle of water can change a lot.
You can do it!, Never Say Die!, Customer Experience and Quality can be Improved, Possible has yet to be defined, Never Say Die!, Past activation energy can be clear sailing, Nsdtp! Never Say Die Throughput!, Possible has yet to be defined, Customer Experience and Quality can be Improved, You will Prevail!, Customer Experience and Quality can be Improved, Never Say Die!, There is hope in a New Day, The future has yet to be written, Small changes do add up.
Possible has yet to be defined, Don’t forget an extra bottle of water can change a lot, Encouragement Throughput has yet to be maximized, The future has yet to be written, Encouragement Throughput has yet to be maximized, You can do it!, Past activation energy can be clear sailing, Possible is Power, Initial conditions can mean a lot, There is hope in a New Day, There is hope in a New Day, Initial conditions can mean a lot, Initial conditions can mean a lot, Never Say Die!, Possible has yet to be defined.
Small changes do add up, Small changes do add up, Customer Experience and Quality can be Improved, You can do it!, Others do not get to claim ground on what you can and cannot do, Past activation energy can be clear sailing, Never Say Die!, Initial conditions can mean a lot, You will Prevail!, The future has yet to be written, Never Say Die!, Customer Experience and Quality can be Improved, The future has yet to be written, Initial conditions can mean a lot, Nsdtp! Never Say Die Throughput!.
Customer Experience and Quality can be Improved, Nsdtp! Never Say Die Throughput!, Encouragement Throughput has yet to be maximized, You can do it!, Don’t forget an extra bottle of water can change a lot, The future has yet to be written, There is hope in a New Day, Initial conditions can mean a lot, Possible is Power, Possible is Power, You will Prevail!, Nsdtp! Never Say Die Throughput!, Possible has yet to be defined, You can do it!, Encouragement Throughput has yet to be maximized.
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: More Peacemaking, Encouragement, Rescue Blankets, Habitat for Humanity, More Peacemaking, Water Desalination Plants, Improved Science Support, More Peace, Improved Optics, Improved Network Throughput and Reach, Reduced Oppression, More Peace building, Power Efficiency, Improved Math Support, Reduced Miscommunication, Motorcycle Helmets, Disaster Risk Reduction, Motorcycle Helmets, Teacher Appreciation, Teacher Appreciation, Critical Thinking, Improved Optics, More Peace building, Critical Thinking, Teacher Training
Teacher Appreciation, Improved Telescopes, Improved Battery Power, Teacher Training, Linguistics Training, Improved Fire Codes, Reduced Cognitive Biases Training, Improved Microscopes, Reduced Child Labor, Time Management, Motorcycle Helmets, Problem Solving, Child Car Safety, Time Management, Problem Solving, Encouragement, Improved Medical Tech, Improved Microscopes, Improved Learning, More Peace, Respect, Disaster Risk Reduction, Teacher Appreciation, Reduced Villain Level Contrast Training, Reduced Cognitive Biases Training
Rescue Blankets, Diversity Training, Reduced Villain Level Contrast Training, Reduced Oppression, Water Bottles, Improved Math Support, Habitat for Humanity, Improved Telescopes, Critical Thinking, Power Efficiency, More Peacekeeping, Improved Hospitals, Clean Water Support, Improved Architectural Blueprints, Child Car Safety, Seat Belts, Problem Solving, Improved Network Throughput and Reach, Improved Network Throughput and Reach, Electrical Safety, Improved Chemical Showers for Labs, Encouragement, Clean Water Support, Improved Network Throughput and Reach, Throughput
Reduced Oppression, Reduced Cognitive Biases Training, Problem Solving, Human Rights, Water Bottles, Reduced Miscommunication, Improved Hospitals, Improved Optics, Improved Learning, Improved Learning, Disaster Risk Reduction, Teacher Training, Diversity Training, More Peacemaking, Water Desalination Plants, Improved Math Support, Ethics, Seat Belts, Motorcycle Helmets, Geneva Convention, Reduced Villain Level Contrast Training, More Peace, Validation, Improved Battery Power, Child Car Safety
Disaster Risk Reduction, Human Rights, Motorcycle Helmets, Validation, Habitat for Humanity, Improved Microscopes, Improved Medical Research, Cancer Research, Reduced Villain Level Contrast Training, Improved Math Support, Teacher Appreciation, Geneva Convention, Teacher Training, Teacher Training, Improved Battery Power, Clean Water Support, Improved Math Support, Criminal Defense Law, Diversity Training, Reduced Child Labor, Throughput, Reduced Villain Level Contrast Training, Validation, Improved Chemical Showers for Labs, Seat Belts
Teacher Appreciation, Validation, Defensive Driving, Improved Learning, Encouragement, Respect, Improved Math Support, Reduced Child Labor, Reduced Cognitive Biases Training, Reduced Oppression, Improved Telescopes, Time Management, Glass of Water, Disaster Risk Reduction, More Peacemaking, Cancer Research, Teacher Training, Glass of Water, Improved Microscopes, Improved Learning, Rescue Blankets, Teacher Appreciation, Ethics, Improved Chemical Showers for Labs, Teacher Training
Encouragement, Water Bottles, Improved Microscopes, Clean Water Support, Criminal Defense Law, Water Well Drilling, Reduced Child Labor, Water Bottles, Respect, Linguistics Training, More Peace, Improved English Support, Motorcycle Helmets, Glass of Water, Respect, Improved Architectural Blueprints, Critical Thinking, Human Rights, Power Efficiency, Reduced Child Labor, Teacher Appreciation, More Peacemaking, Teacher Training, Focus, Improved Medical Tech
Problem Solving, Reduced Villain Level Contrast Training, Critical Thinking, Disaster Risk Reduction, Teacher Appreciation, More Peace, Linguistics Training, Improved Network Throughput and Reach, Glass of Water, Geneva Convention, More Peacekeeping, Diversity Training, Time Management, Improved Architectural Blueprints, Water Well Drilling, Improved Microscopes, Reduced Cognitive Biases Training, Time Management, Validation, Diversity Training, Throughput, Defensive Driving, Disaster Risk Reduction, Linguistics Training, Teacher Training
Reduced Cognitive Biases Training, More Peace, Linguistics Training, Improved Network Throughput and Reach, Water Desalination Plants, Improved Math Support, Power Efficiency, More Peacekeeping, Ethics, More Peacekeeping, Problem Solving, Improved Hospitals, More Peacemaking, Respect, Geneva Convention, Water Well Drilling, Critical Thinking, Improved Optics, Cancer Research, Improved Science Support, Improved Fire Codes, Improved Science Support, Improved Microscopes, Improved Network Throughput and Reach, Improved Microscopes
Reduced Miscommunication, Improved Telescopes, Focus, Water Bottles, Improved Battery Power, Water Desalination Plants, Water Desalination Plants, Defensive Driving, Linguistics Training, More Peacekeeping, Improved Medical Research, Disaster Risk Reduction, Reduced Villain Level Contrast Training, Reduced Oppression, Improved Math Support, Improved Fire Codes, Electrical Safety, Motorcycle Helmets, Improved Learning, Ethics, Teacher Training, Seat Belts, Validation, Habitat for Humanity, Improved Telescopes
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Clean your room, Do the dishes, Never Say Die!
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Do the dishes, Eat your vegetables, you hug the lovable dictator
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Go pick up some important documents from work, Clean your room, Hug a kitten
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Eat your vegetables, Go pick up some important documents from work, Hug a kitten
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Always be safe in the lab, Eat your vegetables, Never Say Die!
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Always be safe in the lab, Eat your vegetables, Never Say Die!
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Do the dishes, Eat your vegetables, The prettiest flowers have the most leaves
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Clean your room, Do the dishes, Hug a kitten
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Always be safe in the lab, Do the dishes, The prettiest flowers have the most leaves
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO: Clean your room, Always be safe in the lab, Hug a kitten
Mar 11, 2023 11:21:57 PM controller.AddEncouragementLabelCommand generateSupport
INFO:
Linear, High Pressure, Snow, Public Relations, Latency, Availability, Logical Fallacies, Don’t push against a brick wall, Peaches, Carbon Dioxide, Kinetic Energy, Chips, Proton, Velocity, Statistical Anomaly, Superposition, Atom, Psychology, Multiple Dimensions, Mood, Equality, Weakest Link, Pressure, Frame of Reference, Normal
Cocunut, Point of View, Feedback Respected, Directed Power, Flood, Drought, Hope, Interpolation, Atmosphere, Disease, Proton, Story, Insulation, Associations, Weak Hypothesis, Conductivity, Respect, Probabilities, Distance, Weak Hypothesis, Buy In, Distrust, Cover, Pestilence, Chips
Induction, Reliability, Reaction Time, Rounding, Cake, Force, Buy In, Pineapples, Activation Energy, Small Contributions Appreciated, Gravity, Carbon Dioxide, Rate of Change, Relevance, Plot, “Allegory of the Cave” – Plato, Value Creation, Measurement, Radiation, Motion, Questions, Impedance, Flags, Stress, Logical Fallacies
Chain Thougts, Acronyms, Thunderstorm, Trust, False Dichotomy, Law, Pattern Matching, Open Loop Systems, Practical Problem Solving, Validation, Sales, Inadequate Support, Superposition, Hurricane, Expert, Reducing Child Labor, Plumbs, Induction, Speed of Light, Chips, Logical Fallacies, Weakest Link, Electron, Anger Management, Socialism
Combustion, Reliability, Motion, Directed Power, Feedback, Plumbs, Distrust, Plumbs, Point of View, Resistance, Defense Law, Theoretical Problem Solving, Microeconomics, Impedance, Mosquitos, Communism, Forms – Aristotle, Quantum Entanglement, Buy In, Liquidity, Precision and Accuracy, Apples, Fast Choice, Time, Magnetism
Delayed Right Choice, Carbon Monoxide Detector, Power Efficiency, Enthalpy, Anxiety, Entropy, Lift, Speed of Heat Conductivity, Expert, Tangled Cords, Carbon Monoxide Detector, Ability to Change Path, Direction, Carbon Dioxide, Anxiety, Obfuscated Truth, Impedance, Appreciation, Don’t push against a brick wall, Encouragement, Directional Max Profit, Imagination, Heat transfer, Macroeconomics, Capitalism, Validation
Communicated Effectively, Symbolism, Variance, Resistance, Ability to Change Path, Direction, Mosquitos, Delayed Right Choice, Low Pressure, Weakest Link, Irreversible Process, Green Energy, Dental Care, Quantum Entanglement, Subset Profits from Systemic Changes and Additions, Psychology, Encouragement, Bugs, Anxiety, Appreciation, Combustion, Reaction Time, Reasonable, Conductivity, Justice, Feedback
Microeconomics, Typhoon, Symbolism, Cover, “Allegory of the Cave” – Plato, Carbon Dioxide, Justice, Speed of Heat Conductivity, Surface Area, Drought, Useful Twists, Expert, Fuel, Health, Anger Management, Truth as Relative, Creative Problem Solving, Enthalpy, Logic, Shape, Impossible, Irreversible Process, Enthalpy, Value, Microeconomics
Strong Hypothesis, Practical Problem Solving, Fuel, Relevance, Gravity, Reasonable, Scientific Notation, Availability, Green Energy, Fault Tolerance, Cheesecake, Coffee, Hypotheticals, Health Care, Psychology, Neutron, Energy, Green Energy, Precision and Accuracy, Questions, Experience, Proton, Oranges, Directional Max Profit, Reliability
Flags, Contamination, Snow, Statistical Anomaly, Valence, Fuel, Entropy, Watts, Charming, Conductivity, Creative Problem Solving, Compressive Forces, Availability, Villian Level Contrast Victims, Historic Context, Initial Conditions, Peaches, Weak Hypothesis, Wind Power, Don’t push against a brick wall, Interpolation, Imagination, Normal, Respect, Corporate Image
Mar 11, 2023 11:21:57 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes
INFO: Performance Test, Adding Two One Digit Numbers 1 billion times
Mar 11, 2023 11:21:57 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes
INFO: — Processed 250,000,000 additions, current running time: 37255900
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes
INFO: — Processed 500,000,000 additions, current running time: 128221500
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes
INFO: — Processed 750,000,000 additions, current running time: 232773100
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes
INFO: Test completed, recorded time in Nanoseconds: 344392400
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes
INFO: Performance Test, Adding Two One Digit Numbers 1 billion times
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes
INFO: — Processed 250,000,000 additions, current running time: 237749900
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes
INFO: — Processed 500,000,000 additions, current running time: 475074000
Mar 11, 2023 11:21:58 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes
INFO: — Processed 750,000,000 additions, current running time: 522189400
Mar 11, 2023 11:21:59 PM performance.PerformanceTests addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes
INFO: Test completed, recorded time in Nanoseconds: 733410200
Updated to Run Some Performance Tests
Following Java code is Open Source, Free to Use for Derivative Works (MIT License)
package performance;
import java.util.logging.Logger;
public class PerformanceTests {
private static Logger logger = Logger.getLogger(PerformanceTests.class.getName());
private static PerformanceTests instance;
public static PerformanceTests getInstance() {
if (null == instance) {
instance = new PerformanceTests();
}
return instance;
}
public static void runPerformanceTests() {
addTwoOneDigitNumbers_OneBillionTimes();
addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes();
}
public static void addTwoOneDigitNumbers_OneBillionTimes() {
logger.info("Performance Test, Adding Two One Digit Numbers 1 billion times");
int sum;
PerformanceUtil.getInstance().start();
for (int i=0; i<200000000; i++) {
for (int j=0; j<5; j++) {
sum = j+j;
}
if (i==50000000) {
logger.info("--- Processed 250,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
if (i==100000000) {
logger.info("--- Processed 500,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
if (i==150000000) {
logger.info("--- Processed 750,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
}
PerformanceUtil.getInstance().stop();
logger.info("Test completed, recorded time in Nanoseconds: "
+PerformanceUtil.getInstance().getRecordedTime());
}
public static void addTwoOneDigitNumbers_OneBillionTimes_andCheckVerify_OneBillionTimes() {
logger.info("Performance Test, Adding Two One Digit Numbers 1 billion times");
int sum;
int doubleTheValue;
int doubleTheSum;
int sumOfDoubled;
PerformanceUtil.getInstance().start();
for (int i=0; i<200000000; i++) {
for (int j=0; j<5; j++) {
sum = j+j;
doubleTheValue = j*2;
doubleTheSum = sum*2;
sumOfDoubled = doubleTheValue+doubleTheValue;
if (doubleTheSum!=sumOfDoubled) {
PerformanceUtil.getInstance().stop();
logger.severe("Numbers not verifying ending test at i="+i+",j="+j+" at recorded time: "
+PerformanceUtil.getInstance().getRecordedTime());
}
}
if (i==50000000) {
logger.info("--- Processed 250,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
if (i==100000000) {
logger.info("--- Processed 500,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
if (i==150000000) {
logger.info("--- Processed 750,000,000 additions, current running time: "
+PerformanceUtil.getInstance().getRunningTime());
}
}
PerformanceUtil.getInstance().stop();
logger.info("Test completed, recorded time in Nanoseconds: "
+PerformanceUtil.getInstance().getRecordedTime());
}
}
package performance;
public class PerformanceUtil {
private boolean stopWatchStarted = false;
private long startTime;
private long endTime;
private long recordedTime=0;
private static PerformanceUtil instance;
public static PerformanceUtil getInstance() {
if (null == instance) {
instance = new PerformanceUtil();
}
return instance;
}
public boolean start() {
if (stopWatchStarted) {
return false;
} else {
startTime=System.nanoTime();
stopWatchStarted=true;
return true;
}
}
public boolean stop() {
if (!stopWatchStarted) {
return false;
} else {
endTime=System.nanoTime();
stopWatchStarted=false;
return true;
}
}
public long getRunningTime() {
long runningTime = System.nanoTime()-startTime;
return runningTime;
}
public long getRecordedTime() {
recordedTime=endTime-startTime;
return recordedTime;
}
public int getRecordedTimeMilliseconds() {
recordedTime=endTime-startTime;
double milliseconds = recordedTime/1000000;
return (int) milliseconds;
}
}
https://en.wikipedia.org/wiki/Triple_modular_redundancy
Software Reliability is not bug free. Extra ways to check output, verify output can be a lot of value. More checks more ability to rely upon values. If values are solid potential for able to turn on and off verified for performance gains.
Created the following classes that are Free as well, MIT License
package test;
import java.util.ArrayList;
import java.util.logging.Logger;
public class AdditionTest {
private static Logger logger = Logger.getLogger(AdditionTest.class.getName());
public boolean testAddTwoIntegers(int a, int b) {
boolean success = false;
int sum = a+b;
int sumTimesTwo = sum*2;
int sumTimesThree = sum*3;
int aTimesTwo = a*2;
int bTimesTwo = b*2;
int aTimesThree = a*3;
int bTimesThree = b*3;
int sumOfDoubled = aTimesTwo+bTimesTwo;
int sumOfTripled = aTimesThree+bTimesThree;
if (sumTimesTwo==sumOfDoubled && sumTimesThree==sumOfTripled) {
success = true;
}
if (!success) {
logger.info("a - "+a+", b - "+b+", a+b="+sum+", Test Successful? "+success);
}
return success;
}
public TestResult testAddOneThousand() {
ArrayList<TestResult> testResults = new ArrayList<>();
for (int i=0;i<1000;i++) {
for (int j=0; j<9; j++) {
TestResult result = TestUtil.runBiFunctionTestTimed("Addition", this::testAddTwoIntegers, j, j+1);
testResults.add(result);
}
}
TestResult summary = TestUtil.summarizeTestResults(testResults);
if (summary.getTestSuccessful()) {
logger.info("Adding 1000 tests required "+summary.getTimeToComplete()+" to complete successfully");
return summary;
} else {
logger.severe("Adding 1000 Numbers Test failed");
return summary;
}
}
}
package test;
public class TestResult {
private long timeToComplete;
private boolean testSuccessful;
public TestResult(final long timeToComplete, final boolean testSuccessful) {
this.timeToComplete = timeToComplete;
this.testSuccessful = testSuccessful;
}
public long getTimeToComplete() {
return timeToComplete;
}
public boolean getTestSuccessful() {
return testSuccessful;
}
}
package test;
import java.util.logging.Logger;
import performance.PerformanceUtil;
import java.util.ArrayList;
import java.util.function.BiFunction;
import java.util.function.Supplier;
public class TestUtil {
private static Logger logger = Logger.getLogger(TestUtil.class.getName());
private static PerformanceUtil perfUtil = new PerformanceUtil();
public static TestResult summarizeTestResults(ArrayList<TestResult> results) {
boolean success = true;
long summedTime=0;
for (int i=0; i<results.size(); i++) {
TestResult result = results.get(i);
if (!result.getTestSuccessful()) {
success = false;
}
summedTime += result.getTimeToComplete();
}
TestResult summedResult = new TestResult(summedTime, success);
return summedResult;
}
public static TestResult runSupplierTestTimed(String testName, Supplier<Boolean> testMethod) {
boolean success = false;
perfUtil.start();
success = testMethod.get();
perfUtil.stop();
return new TestResult(perfUtil.getRecordedTime(), success);
}
public static <T, U> TestResult runBiFunctionTestTimed(String testName, BiFunction<T, U, Boolean> testMethod,
T param1, U param2) {
boolean success = false;
perfUtil.start();
success = testMethod.apply(param1, param2);
perfUtil.stop();
return new TestResult(perfUtil.getRecordedTime(), success);
}
}
package performanceTest;
import java.util.ArrayList;
import java.util.logging.Logger;
import performance.PerformanceUtil;
import test.AdditionTest;
import test.TestResult;
import test.TestUtil;
public class PerformanceTestRunner {
private static Logger logger = Logger.getLogger(PerformanceTestRunner.class.getName());
public static void main(String[] args) {
ArrayList<TestResult> testResults = new ArrayList<>();
PerformanceUtil.getInstance().start();
for (int i=0; i<1000; i++) {
AdditionTest additionTest = new AdditionTest();
additionTest.testAddOneThousand();
testResults.add(additionTest.testAddOneThousand());
}
TestResult summary = TestUtil.summarizeTestResults(testResults);
PerformanceUtil.getInstance().stop();
if (summary.getTestSuccessful()) {
logger.info("Time Required to add and verify one million numbers: "+PerformanceUtil.getInstance().getRecordedTimeMilliseconds()+ " ms");
} else {
logger.severe("Test Failed");
}
}
}
Example Console Output on March 12th, 2023 using Processor Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)
....
Mar 12, 2023 1:14:20 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 243400 to complete successfully
Mar 12, 2023 1:14:20 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 287300 to complete successfully
Mar 12, 2023 1:14:20 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 266100 to complete successfully
Mar 12, 2023 1:14:20 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 236000 to complete successfully
Mar 12, 2023 1:14:20 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 242700 to complete successfully
Mar 12, 2023 1:14:20 AM performanceTest.PerformanceTestRunner main
INFO: Time Required to add and verify one million numbers: 4573 ms
The result tends to vary, I realize this is more complicated than just adding numbers, also requires Test overhead and summarizing Test Results.
Mar 12, 2023 1:19:50 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 222900 to complete successfully
Mar 12, 2023 1:19:50 AM performanceTest.PerformanceTestRunner main
INFO: Time Required to add and verify one million numbers: 4429 ms
Would have another run here, but seems my dev environment is being hacked.
Maybe the police are raiding the hackers den as we speak.
INFO: Adding 1000 tests required 274200 to complete successfully
Mar 12, 2023 1:22:51 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 240900 to complete successfully
Mar 12, 2023 1:22:51 AM performanceTest.PerformanceTestRunner main
INFO: Time Required to add and verify one million numbers: 4376 ms
Not ideal to have to turn up rage to have to get solid work environments, high potential for turning up air gapped, air gapped turned up potential for networks to not be reliably tested.
911 with more or less resilience?
Mar 12, 2023 1:24:45 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 227500 to complete successfully
Mar 12, 2023 1:24:45 AM test.AdditionTest testAddOneThousand
INFO: Adding 1000 tests required 235200 to complete successfully
Mar 12, 2023 1:24:45 AM performanceTest.PerformanceTestRunner main
INFO: Time Required to add and verify one million numbers: 4458 ms
The addition test logs are in Nanoseconds, the final value is in Milliseconds
One million values double checked and summarized is different that one million values. Easy to not fully appreciate what you gain and what you lose without ECC.
My code does not replicate what ECC memory does, it does reiterate the point that checked values factor into confidence
https://en.wikipedia.org/wiki/ECC_memory
More solid ground is easy to take in software, from hackers or code that is written swiftly. All test cases not tested having more potential at base layers can be a lot of power. Like from that could be a problem to that is more unlikely to be a problem (but could still be a problem).
One million of the wrong values can be precision, precision for getting to the right values.
Wonder what the Exascale Supercomputers would say is the most common source of incorrect data
User Input?
Rounding Errors?
Oppression leads to data never added?
https://en.wikipedia.org/wiki/Relevance – Recall and Precision on this document is a powerful Concept that is a Key Detail Worthy of Memory, that is Not Always Fully Appreciated, that is a Subtle but Powerful Difference, that has potential to be a Game Changer
ECC Memory might not save you from all data errors, understanding what it gains you and what it does not for fault tolerance can be empowering
Is likely not to save you from all data errors
ECC loads data from a corrupt hard drive or archive? Corrupted Data not always easy to see. Compressed data decompresses yet decompresses wrong?
[Num]A like 5A -> AAAAA
A corrupted to be a B
5B -> BBBBB
Far different
Performance from an ECC Workstation or a Non ECC Workstation is still many times faster than Humans can perceive
Humans make systems that run faster than they can perceive
Having extra checks and verification can be a lot of power
Systems with tendency towards, that are designed towards Redundant Costs can be Reduced and Throughput can be amplified?
Computers kind of like walking on a tight wire between buildings, extra safety and verification not always value out.
Important to remember the same 2 + 2 = 4 that leads to 2 water bottles + 2 water bottles = 4 water bottles for hydration that can save lives is the same 2+2 = 4 that leads to 2 landmines + 2 landmines = 4 a future with not all bear trap like accidents for children out.
Math is like words. Words can Amplify Peace or Start Wars.
High Potential the following video to be turned up in 1 million different ways by the World.