Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop to read unused source code #540

Merged
merged 1 commit into from
Jan 24, 2017
Merged

Conversation

yui-knk
Copy link
Contributor

@yui-knk yui-knk commented Dec 13, 2016

Before this commit all source code were loaded, even if
they are not used.
For example when taking test coverage for rails applications,
in many cases files on "vendor/bundle" are filtered out.
By reading source code lazily, the time required to generate
results will be shortened.

@colszowka
Copy link
Collaborator

@yui-knk Excellent, thank you. Would you mind adding a comment above the method or the caching line that states that the memoization/lazy read are intentional? Just so anyone who reads this in the distant future does not accidentally change it back to something non-lazy

Before this commit all source code were loaded, even if
they are not used.
For example when taking test coverage for rails applications,
in many cases files on "vendor/bundle" are filtered out.
By reading source code lazily, the time required to generate
results will be shortened.
@yui-knk
Copy link
Contributor Author

yui-knk commented Dec 14, 2016

@colszowka I added comment why we read lazily 😄

@PragTob
Copy link
Collaborator

PragTob commented Jan 24, 2017

Looks good to me 👍

@colszowka colszowka merged commit b94d93b into simplecov-ruby:master Jan 24, 2017
@colszowka
Copy link
Collaborator

👍 Thank you @yui-knk !

@amatsuda
Copy link
Member

👏

@yui-knk
Copy link
Contributor Author

yui-knk commented Jan 24, 2017

😄

@yui-knk yui-knk deleted the speed_up branch January 24, 2017 08:44
PragTob added a commit that referenced this pull request Jan 24, 2017
Such performance many wow :)
jsonn pushed a commit to jsonn/pkgsrc that referenced this pull request Mar 20, 2017
0.14.1 2017-03-18 ([changes](simplecov-ruby/simplecov@v0.14.0...v0.14.1))
========

## Bugfixes

* Files that were skipped as a whole/had no relevant coverage could lead to Float errors. See [#564](simplecov-ruby/simplecov#564) (thanks to @stevehanson for the report in [#563](simplecov-ruby/simplecov#563))

0.14.0 2017-03-15 ([changes](simplecov-ruby/simplecov@v0.13.0...v0.14.0))
==========

## Enhancements

* Officially support JRuby 9.1+ going forward (should also work with previous releases). See [#547](simplecov-ruby/simplecov#547) (ping @PragTob when encountering issues)
* Add Channel group to Rails profile, when `ActionCable` is loaded. See [#492](simplecov-ruby/simplecov#492) (thanks @BenMorganIO)
* Stop `extend`ing instances of `Array` and `Hash` during merging results avoiding problems frozen results while manually merging results. See [#558](simplecov-ruby/simplecov#558) (thanks @aroben)

## Bugfixes

* Fix parallel_tests when a thread ends up running no tests. See [#533](simplecov-ruby/simplecov#533) (thanks @cshaffer)
* Skip the `:nocov:` comments along with the code that they skip. See [#551](simplecov-ruby/simplecov#551) (thanks @ebiven)
* Fix crash when Home environment variable is unset. See [#482](simplecov-ruby/simplecov#482) (thanks @waldyr)
* Make track_files work again when explicitly setting it to nil. See [#463](simplecov-ruby/simplecov#463) (thanks @craiglittle)
* Do not overwrite .last_run.json file when refuse_coverage_drop option is enabled and the coverage has dropped (lead to you being able to just rerun tests and everything was _fine_). See [#553](simplecov-ruby/simplecov#553) (thanks @Miloshes)

0.13.0 2016-01-25 ([changes](simplecov-ruby/simplecov@v0.12.0...v0.13.0))
==========

## Enhancements

* Faster run times when a very large number of files is loaded into SimpleCov. See [#520](simplecov-ruby/simplecov#520) (thanks @alyssais)
* Only read in source code files that are actually used (faster when files are ignored etc.). See [#540](simplecov-ruby/simplecov#540) (tahks @yui-knk)

## Bugfixes

* Fix merging of resultsets if a file is missing on one side. See [#513](simplecov-ruby/simplecov#513) (thanks @hanazuki)
* Fix Ruby 2.4 deprecation warnings by using Integer instead of Fixnum. See [#523](simplecov-ruby/simplecov#523) (thanks @nobu)
* Force Ruby 2 to json 2. See [dc7417d50](simplecov-ruby/simplecov@dc7417d) (thanks @amatsuda)
* Various other gem dependency fixes for different gems on different ruby versions. (thanks @amatsuda)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants