Cases for ProcessEntry benchmarking - single thread, ordered sequence arrival, non-initialized cache, 100 channels - single thread, ordered sequence arrival, initialized cache, 100 channels - single thread, unordered sequence arrival, non-initialized cache, 100 channels - single thread, unordered se
(b *testing.B)
| 1757 | // - non-unique doc ids? |
| 1758 | |
| 1759 | func BenchmarkProcessEntry(b *testing.B) { |
| 1760 | base.SetUpBenchmarkLogging(b, base.LevelError, base.KeyCache, base.KeyChanges) |
| 1761 | processEntryBenchmarks := []struct { |
| 1762 | name string |
| 1763 | feed *testProcessEntryFeed |
| 1764 | warmCacheCount int |
| 1765 | }{ |
| 1766 | { |
| 1767 | "SingleThread_OrderedFeed_NoActiveChannels", |
| 1768 | NewTestProcessEntryFeed(100, 1), |
| 1769 | 0, |
| 1770 | }, |
| 1771 | { |
| 1772 | "SingleThread_OrderedFeed_ActiveChannels", |
| 1773 | NewTestProcessEntryFeed(100, 1), |
| 1774 | 100, |
| 1775 | }, |
| 1776 | { |
| 1777 | "SingleThread_OrderedFeed_ManyActiveChannels", |
| 1778 | NewTestProcessEntryFeed(35000, 1), |
| 1779 | 35000, |
| 1780 | }, |
| 1781 | { |
| 1782 | "SingleThread_NonOrderedFeed_NoActiveChannels", |
| 1783 | NewTestProcessEntryFeed(100, 10), |
| 1784 | 0, |
| 1785 | }, |
| 1786 | { |
| 1787 | "SingleThread_NonOrderedFeed_ActiveChannels", |
| 1788 | NewTestProcessEntryFeed(100, 10), |
| 1789 | 100, |
| 1790 | }, |
| 1791 | { |
| 1792 | "SingleThread_NonOrderedFeed_ManyActiveChannels", |
| 1793 | NewTestProcessEntryFeed(35000, 10), |
| 1794 | 35000, |
| 1795 | }, |
| 1796 | } |
| 1797 | |
| 1798 | for _, bm := range processEntryBenchmarks { |
| 1799 | b.Run(bm.name, func(b *testing.B) { |
| 1800 | ctx := base.TestCtx(b) |
| 1801 | context, err := NewDatabaseContext(ctx, "db", base.GetTestBucket(b), false, DatabaseContextOptions{}) |
| 1802 | require.NoError(b, err) |
| 1803 | defer context.Close(ctx) |
| 1804 | |
| 1805 | ctx = context.AddDatabaseLogContext(ctx) |
| 1806 | err = context.StartOnlineProcesses(ctx) |
| 1807 | require.NoError(b, err) |
| 1808 | |
| 1809 | collection := GetSingleDatabaseCollection(b, context) |
| 1810 | collectionID := collection.GetCollectionID() |
| 1811 | |
| 1812 | changeCache := &changeCache{} |
| 1813 | if err := changeCache.Init(ctx, context, context.channelCache, nil, nil, context.MetadataKeys); err != nil { |
| 1814 | log.Printf("Init failed for changeCache: %v", err) |
| 1815 | b.Fail() |
| 1816 | } |
nothing calls this directly
no test coverage detected