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
|
end
|
||||||
|
|
||||||
def next
|
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
|
if pos && pos < self.site.posts.length-1
|
||||||
self.site.posts[pos+1]
|
self.site.posts[pos+1]
|
||||||
else
|
else
|
||||||
|
@ -281,7 +280,7 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
def previous
|
def previous
|
||||||
pos = self.site.posts.index(self)
|
pos = self.site.posts.index {|post| post.equal?(self) }
|
||||||
if pos && pos > 0
|
if pos && pos > 0
|
||||||
self.site.posts[pos-1]
|
self.site.posts[pos-1]
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue