- Notifications
You must be signed in to change notification settings - Fork46
Open
Description
In the previous Issue:
#748
We improved the performance with current architecture, the usage ofSysfs.Sysfs in the current form, is a stateless class with static methods.
Ideas to improve in this iteration:
- Moving from static methods, to instance methods
- Add
setSysfstoMockSysfs to improve testing. UsingGuava, it could be possible to expose only for testing with the annotation@VisibleForTestingbut I don´t want to increase the weight of the jar in 2mb.
@dwalend, what other ideas, do you have?
@JakubVanek, what other ideas, do you have?
In your opinion, what state is necessary to maintain inSysfs and have some kind of concurrency protection?
Criterias for PR:
- Branch:
sysfs_perf2 - Code pass Checkstyle:
gradle checkstyleMain - Benchmarks:
JMH - Complexity: Reduced
- Number of changes: Minimum
- Tests: Every new class, requiere Unit Tests. Review how to add Concurrency tests to avoid concurrency issues.
We will analyse for the classes:
- ev3dev.sensors.Battery;
- ev3dev.actuators.ev3.EV3Led;
- ev3dev.actuators.lego.motors.EV3LargeRegulatedMotor;
We will begin with Battery, an easy case and later, we will tackle a complex case like a Motor.
Juan Antonio
