Improvement and cleanup

perftest
Laurent 3 years ago
parent 56019357b4
commit bc4bc3ca2e
  1. 11
      app/src/main/java/net/pokeranalytics/android/calculus/ReportWhistleBlower.kt
  2. 12
      app/src/main/java/net/pokeranalytics/android/calculus/optimalduration/CashGameOptimalDurationCalculator.kt
  3. 10
      app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt
  4. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt
  5. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt
  6. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt
  7. 9
      app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarFragment.kt

@ -13,9 +13,6 @@ import net.pokeranalytics.android.model.LiveOnline
import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.ui.view.rows.StaticReport import net.pokeranalytics.android.ui.view.rows.StaticReport
import net.pokeranalytics.android.util.extensions.formattedHourlyDuration import net.pokeranalytics.android.util.extensions.formattedHourlyDuration
import timber.log.Timber
import kotlin.coroutines.CoroutineContext
interface NewPerformanceListener { interface NewPerformanceListener {
fun newBestPerformanceHandler() fun newBestPerformanceHandler()
@ -62,7 +59,7 @@ class ReportWhistleBlower(var context: Context) {
} }
fun requestReportLaunch() { fun requestReportLaunch() {
Timber.d(">>> Launch report") // Timber.d(">>> Launch report")
if (paused) { if (paused) {
return return
@ -169,7 +166,7 @@ class ReportTask(private var whistleBlower: ReportWhistleBlower, var context: Co
private fun launchReport(realm: Realm, report: StaticReport) { private fun launchReport(realm: Realm, report: StaticReport) {
Timber.d(">>> launch report = $report") // Timber.d(">>> launch report = $report")
when (report) { when (report) {
StaticReport.OptimalDuration -> launchOptimalDuration(realm, report) StaticReport.OptimalDuration -> launchOptimalDuration(realm, report)
@ -259,10 +256,10 @@ class ReportTask(private var whistleBlower: ReportWhistleBlower, var context: Co
} }
} ?: run { // if there is no max but a now irrelevant Performance, we delete it } ?: run { // if there is no max but a now irrelevant Performance, we delete it
Timber.d("NO best computed value, current perf = $currentPerf ") // Timber.d("NO best computed value, current perf = $currentPerf ")
currentPerf?.let { perf -> currentPerf?.let { perf ->
realm.executeTransaction { realm.executeTransaction {
Timber.d("Delete perf: stat = ${perf.stat}, report = ${perf.reportId}") // Timber.d("Delete perf: stat = ${perf.stat}, report = ${perf.reportId}")
perf.deleteFromRealm() perf.deleteFromRealm()
} }
} }

@ -64,8 +64,8 @@ class CashGameOptimalDurationCalculator {
var end: Double? = null var end: Double? = null
var validBuckets = 0 var validBuckets = 0
val hkeys = sessionsByDuration.keys.map { it / 3600 / 1000.0 }.sorted() // val hkeys = sessionsByDuration.keys.map { it / 3600 / 1000.0 }.sorted()
Timber.d("Stop notif > keys: $hkeys ") // Timber.d("Stop notif > keys: $hkeys ")
for (key in sessionsByDuration.keys.sorted()) { for (key in sessionsByDuration.keys.sorted()) {
val sessionCount = sessionsByDuration[key]?.size ?: 0 val sessionCount = sessionsByDuration[key]?.size ?: 0
if (start == null && sessionCount >= minimumValidityCount) { if (start == null && sessionCount >= minimumValidityCount) {
@ -76,15 +76,15 @@ class CashGameOptimalDurationCalculator {
validBuckets++ validBuckets++
} }
} }
Timber.d("Stop notif > validBuckets: $validBuckets ") // Timber.d("Stop notif > validBuckets: $validBuckets ")
if (!(start != null && end != null && (end - start) >= intervalValidity)) { if (!(start != null && end != null && (end - start) >= intervalValidity)) {
Timber.d("Stop notif > invalid setup: $start / $end ") // Timber.d("Stop notif > invalid setup: $start / $end ")
return null return null
} }
// define if we have enough sessions // define if we have enough sessions
if (sessions.size < 50) { if (sessions.size < 50) {
Timber.d("Stop notif > not enough sessions: ${sessions.size} ") // Timber.d("Stop notif > not enough sessions: ${sessions.size} ")
return null return null
} }
@ -134,7 +134,7 @@ class CashGameOptimalDurationCalculator {
return bestDuration return bestDuration
} }
Timber.d("Stop notif > not found, best duration: $bestDuration") // Timber.d("Stop notif > not found, best duration: $bestDuration")
realm.close() realm.close()
return null return null
} }

@ -113,11 +113,11 @@ class HomeActivity : BaseActivity(), NewPerformanceListener {
val realm = getRealm() val realm = getRealm()
// observe currency changes // observe currency changes
this.currencies = realm.where(Currency::class.java).findAll() this.currencies = realm.where(Currency::class.java).findAllAsync()
this.currencies.addChangeListener { currencies, _ -> this.currencies.addChangeListener { _, _ ->
realm.executeTransactionAsync { realm.executeTransactionAsync { asyncRealm ->
currencies.forEach { asyncRealm.where(Currency::class.java).findAll().forEach { currency ->
it.refreshRelatedRatedValues() currency.refreshRelatedRatedValues()
} }
} }
} }

@ -86,9 +86,9 @@ class ImportFragment : RealmFragment(), ImportDelegate {
this.importer = CSVImporter(inputStream) this.importer = CSVImporter(inputStream)
this.importer.delegate = this this.importer.delegate = this
CoroutineScope(Dispatchers.Default).launch { CoroutineScope(Dispatchers.Main).launch {
val coroutine = GlobalScope.async { val coroutine = CoroutineScope(Dispatchers.Default).async {
val s = Date() val s = Date()
Timber.d(">>> Start Import...") Timber.d(">>> Start Import...")

@ -321,7 +321,7 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc
val report = Calculator.computeStats(realm, options = options) val report = Calculator.computeStats(realm, options = options)
Timber.d("launchComputation: ${System.currentTimeMillis() - startDate.time}ms") // Timber.d("launchComputation: ${System.currentTimeMillis() - startDate.time}ms")
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
if (!isDetached) { if (!isDetached) {

@ -172,8 +172,8 @@ class ProgressReportFragment : AbstractReportFragment() {
CoroutineScope(Dispatchers.Default).launch { CoroutineScope(Dispatchers.Default).launch {
val s = Date() // val s = Date()
Timber.d(">>> start...") // Timber.d(">>> start...")
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
@ -184,9 +184,9 @@ class ProgressReportFragment : AbstractReportFragment() {
realm.close() realm.close()
val e = Date() // val e = Date()
val duration = (e.time - s.time) / 1000.0 // val duration = (e.time - s.time) / 1000.0
Timber.d(">>> ended in $duration seconds") // Timber.d(">>> ended in $duration seconds")
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
setGraphData(report, aggregationType) setGraphData(report, aggregationType)

@ -39,7 +39,6 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rows.CustomizableRowRepresentable import net.pokeranalytics.android.ui.view.rows.CustomizableRowRepresentable
import net.pokeranalytics.android.util.extensions.* import net.pokeranalytics.android.util.extensions.*
import timber.log.Timber
import java.util.* import java.util.*
import kotlin.collections.set import kotlin.collections.set
@ -494,7 +493,7 @@ class CalendarFragment : RealmFragment(), StaticRowRepresentableDataSource,
sortedMonthlyReports = monthlyReports.toSortedMap(compareByDescending { it }) sortedMonthlyReports = monthlyReports.toSortedMap(compareByDescending { it })
sortedYearlyReports = yearlyReports.toSortedMap(compareByDescending { it }) sortedYearlyReports = yearlyReports.toSortedMap(compareByDescending { it })
Timber.d("Computation: ${System.currentTimeMillis() - startDate.time}ms") // Timber.d("Computation: ${System.currentTimeMillis() - startDate.time}ms")
} }
@ -502,7 +501,7 @@ class CalendarFragment : RealmFragment(), StaticRowRepresentableDataSource,
* Display data * Display data
*/ */
private fun displayData() { private fun displayData() {
Timber.d("displayData") // Timber.d("displayData")
if (context == null) { return } // required because of launchAsyncStatComputation if (context == null) { return } // required because of launchAsyncStatComputation
@ -598,8 +597,8 @@ class CalendarFragment : RealmFragment(), StaticRowRepresentableDataSource,
} }
} }
Timber.d("Display data: ${System.currentTimeMillis() - startDate.time}ms") // Timber.d("Display data: ${System.currentTimeMillis() - startDate.time}ms")
Timber.d("Rows: ${rows.size}") // Timber.d("Rows: ${rows.size}")
this.calendarAdapter.notifyDataSetChanged() this.calendarAdapter.notifyDataSetChanged()

Loading…
Cancel
Save