Skip to content

perf(pinia-orm): add optional caching for same get requests#272

Merged
CodeDredd merged 5 commits intonext-releasefrom
caching
Sep 15, 2022
Merged

perf(pinia-orm): add optional caching for same get requests#272
CodeDredd merged 5 commits intonext-releasefrom
caching

Conversation

@CodeDredd
Copy link
Copy Markdown
Owner

@CodeDredd CodeDredd commented Aug 29, 2022

🔗 Linked issue

vuex-orm/vuex-orm-next#116

❓ Type of change

  • 📖 Documentation (updates to the documentation or readme)
  • 🐞 Bug fix (a non-breaking change that fixes an issue)
  • 👌 Enhancement (improving an existing functionality like performance)
  • ✨ New feature (a non-breaking change that adds functionality)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

Right now if you execute a get request (also find, etc.) then this request is always making the whol script chain which makes it pretty slow in big storages or if you execute the same get request very often.

This implements a simple caching storage like all other libaries have (vuex-orm-cache, vue-query, ....)

Get Speed test for 10k saved items and 5 same queries

get(): with cache: 371.033ms
time query 1: 370.344ms
time query 2: 0.08ms
time query 3: 0.024ms
time query 4: 0.023ms
time query 5: 0.029ms

get(): without cache: 705.5ms
time query without 1: 151.915ms
time query without 2: 140.015ms
time query without 3: 137.248ms
time query without 4: 137.401ms
time query without 5: 137.139ms

📝 Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

@CodeDredd CodeDredd added the enhancement New feature or request label Aug 29, 2022
@CodeDredd CodeDredd changed the title perf(pinia-orm): add caching for same get requests perf(pinia-orm): add optional caching for same get requests Sep 15, 2022
@CodeDredd CodeDredd merged commit b0b275d into next-release Sep 15, 2022
@CodeDredd CodeDredd deleted the caching branch September 15, 2022 09:19
@CodeDredd CodeDredd mentioned this pull request Sep 15, 2022
CodeDredd added a commit that referenced this pull request Sep 15, 2022
…rsion (#343)

* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove vue-hako since it breaks with new vueuse version
CodeDredd added a commit that referenced this pull request Sep 15, 2022
* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove `vue-hako` since it breaks with new vueuse version (#343)

* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove vue-hako since it breaks with new vueuse version

* chore: update readme

* chore: update readme
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant