Optimize Post#{next,previous}
Use object equality for comparisons rather than Comparable#==, which in turn uses Post#<=>, which is slow. This yielded a 3x performance improvement for `jekyll build` on a large site (1m6.467s -> 0m19.532s).
This commit is contained in:
parent
b2c45aafdc
commit
4a769dbf5f
|
@ -271,8 +271,7 @@ module Jekyll
|
|||
end
|
||||
|
||||
def next
|
||||
pos = self.site.posts.index(self)
|
||||
|
||||
pos = self.site.posts.index {|post| post.equal?(self) }
|
||||
if pos && pos < self.site.posts.length-1
|
||||
self.site.posts[pos+1]
|
||||
else
|
||||
|
@ -281,7 +280,7 @@ module Jekyll
|
|||
end
|
||||
|
||||
def previous
|
||||
pos = self.site.posts.index(self)
|
||||
pos = self.site.posts.index {|post| post.equal?(self) }
|
||||
if pos && pos > 0
|
||||
self.site.posts[pos-1]
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue