Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
js-map/obj-4
(version: 0)
Comparing performance of:
obusage vs mapusage
Created:
6 years ago
by:
Guest
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
const test = a => { const b = []; for (i = 0; i < 500; i++) { const s = a.items; b.push(...s); } return(b); };
Tests:
obusage
var obj2 ={ kind: 'StorageClassList', apiVersion: 'storage.k8s.io/v1', metadata: { selfLink: '/apis/storage.k8s.io/v1/storageclasses', resourceVersion: '96731' }, items: [ { metadata: { name: 'example-storagecluster-ceph-rbd', selfLink: '/apis/storage.k8s.io/v1/storageclasses/example-storagecluster-ceph-rbd', uid: '96797a5d-8608-40fd-a6ac-4a4fdf474dae', resourceVersion: '32796', creationTimestamp: '2019-11-08T08:38:15Z', ownerReferences: [ { apiVersion: 'ocs.openshift.io/v1', kind: 'StorageCluster', name: 'example-storagecluster', uid: '17c2b0e9-e1a2-4f1c-b2eb-14e885dc3e92', controller: true, blockOwnerDeletion: true } ] }, provisioner: 'openshift-storage.rbd.csi.ceph.com', parameters: { clusterID: 'openshift-storage', 'csi.storage.k8s.io/fstype': 'ext4', 'csi.storage.k8s.io/node-stage-secret-name': 'rook-csi-rbd-node', 'csi.storage.k8s.io/node-stage-secret-namespace': 'openshift-storage', 'csi.storage.k8s.io/provisioner-secret-name': 'rook-csi-rbd-provisioner', 'csi.storage.k8s.io/provisioner-secret-namespace': 'openshift-storage', imageFeatures: 'layering', imageFormat: '2', pool: 'example-storagecluster-cephblockpool' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' }, { metadata: { name: 'example-storagecluster-cephfs', selfLink: '/apis/storage.k8s.io/v1/storageclasses/example-storagecluster-cephfs', uid: 'fff93495-dd17-4335-a19e-aa5bdf31a78b', resourceVersion: '32795', creationTimestamp: '2019-11-08T08:38:15Z', ownerReferences: [ { apiVersion: 'ocs.openshift.io/v1', kind: 'StorageCluster', name: 'example-storagecluster', uid: '17c2b0e9-e1a2-4f1c-b2eb-14e885dc3e92', controller: true, blockOwnerDeletion: true } ] }, provisioner: 'openshift-storage.cephfs.csi.ceph.com', parameters: { clusterID: 'openshift-storage', 'csi.storage.k8s.io/node-stage-secret-name': 'rook-csi-cephfs-node', 'csi.storage.k8s.io/node-stage-secret-namespace': 'openshift-storage', 'csi.storage.k8s.io/provisioner-secret-name': 'rook-csi-cephfs-provisioner', 'csi.storage.k8s.io/provisioner-secret-namespace': 'openshift-storage', fsName: 'example-storagecluster-cephfilesystem' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' }, { metadata: { name: 'gp2', selfLink: '/apis/storage.k8s.io/v1/storageclasses/gp2', uid: 'a1140b0a-173e-4096-a398-5f4d5179bd66', resourceVersion: '16548', creationTimestamp: '2019-11-08T08:01:17Z', annotations: { 'storageclass.kubernetes.io/is-default-class': 'true' }, ownerReferences: [ { apiVersion: 'v1', kind: 'clusteroperator', name: 'storage', uid: 'd7dd2e85-6533-48e9-b797-4682c66f313a' } ] }, provisioner: 'kubernetes.io/aws-ebs', parameters: { encrypted: 'true', type: 'gp2' }, reclaimPolicy: 'Delete', allowVolumeExpansion: true, volumeBindingMode: 'WaitForFirstConsumer' }, { metadata: { name: 'openshift-storage.noobaa.io', selfLink: '/apis/storage.k8s.io/v1/storageclasses/openshift-storage.noobaa.io', uid: '729e8642-7947-40d6-b3c0-2bfd8cd8b2c4', resourceVersion: '36813', creationTimestamp: '2019-11-08T08:43:41Z', ownerReferences: [ { apiVersion: 'noobaa.io/v1alpha1', kind: 'NooBaa', name: 'noobaa', uid: '0eef6770-525b-43ed-a74f-30df335951f8', controller: true } ] }, provisioner: 'openshift-storage.noobaa.io/obc', parameters: { bucketclass: 'noobaa-default-bucket-class' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' } ] }; var obj = { apiVersion: 'v1', items: [ { apiVersion: 'objectbucket.io/v1alpha1', kind: 'ObjectBucketClaim', metadata: { creationTimestamp: '2019-11-08T10:13:28Z', finalizers: [ 'objectbucket.io/finalizer' ], generation: 2, labels: { app: 'noobaa', 'bucket-provisioner': 'openshift-storage.noobaa.io-obc', 'noobaa-domain': 'openshift-storage.noobaa.io' }, name: 'obc-1', namespace: 'openshift-storage', resourceVersion: '73383', selfLink: '/apis/objectbucket.io/v1alpha1/namespaces/openshift-storage/objectbucketclaims/obc-1', uid: '5d5e9ef9-e9d2-44c4-bc97-28309185fda1' }, spec: { ObjectBucketName: 'obc-openshift-storage-obc-1', bucketName: 'obc-1-adcfc5d2-81fe-4550-a43c-d089236532ad', generateBucketName: 'obc-1', storageClassName: 'openshift-storage.noobaa.io' }, status: { phase: 'Bound' } }, { apiVersion: 'objectbucket.io/v1alpha1', kind: 'ObjectBucketClaim', metadata: { creationTimestamp: '2019-11-08T10:13:44Z', finalizers: [ 'objectbucket.io/finalizer' ], generation: 2, labels: { app: 'noobaa', 'bucket-provisioner': 'openshift-storage.noobaa.io-obc', 'noobaa-domain': 'openshift-storage.noobaa.io' }, name: 'obc-2', namespace: 'openshift-storage', resourceVersion: '73494', selfLink: '/apis/objectbucket.io/v1alpha1/namespaces/openshift-storage/objectbucketclaims/obc-2', uid: '88145d72-e580-4481-add5-92f505e13207' }, spec: { ObjectBucketName: 'obc-openshift-storage-obc-2', bucketName: 'obc-2-d521f540-4a59-4b8e-8fe5-3a2f50bb5a44', generateBucketName: 'obc-2', storageClassName: 'openshift-storage.noobaa.io' }, status: { phase: 'Bound' } } ], kind: 'List', metadata: { resourceVersion: '', selfLink: '' } }; const getName = (value) => _.get(value, 'metadata.name'); const getNoobaaStorageClass = (storageClassesList) => { return storageClassesList.filter((sc) => _.endsWith(_.get(sc, 'provisioner'), 'noobaa.io/obc')); }; const getNoobaaObcs = (obcList, storageClassesList) => { const noobaaStorageClasses = getNoobaaStorageClass(storageClassesList); const result = obcList.filter((o) => { const storageClassName = _.get(o, 'spec.storageClassName'); return noobaaStorageClasses.some((sc) => sc.metadata.name === storageClassName); }); return result.length; }; const test = a => { const b = []; for (i = 0; i < 500; i++) { b.push(...a); } return(b); }; getNoobaaObcs((obj.items), (obj2.items));
mapusage
var obj2 ={ kind: 'StorageClassList', apiVersion: 'storage.k8s.io/v1', metadata: { selfLink: '/apis/storage.k8s.io/v1/storageclasses', resourceVersion: '96731' }, items: [ { metadata: { name: 'example-storagecluster-ceph-rbd', selfLink: '/apis/storage.k8s.io/v1/storageclasses/example-storagecluster-ceph-rbd', uid: '96797a5d-8608-40fd-a6ac-4a4fdf474dae', resourceVersion: '32796', creationTimestamp: '2019-11-08T08:38:15Z', ownerReferences: [ { apiVersion: 'ocs.openshift.io/v1', kind: 'StorageCluster', name: 'example-storagecluster', uid: '17c2b0e9-e1a2-4f1c-b2eb-14e885dc3e92', controller: true, blockOwnerDeletion: true } ] }, provisioner: 'openshift-storage.rbd.csi.ceph.com', parameters: { clusterID: 'openshift-storage', 'csi.storage.k8s.io/fstype': 'ext4', 'csi.storage.k8s.io/node-stage-secret-name': 'rook-csi-rbd-node', 'csi.storage.k8s.io/node-stage-secret-namespace': 'openshift-storage', 'csi.storage.k8s.io/provisioner-secret-name': 'rook-csi-rbd-provisioner', 'csi.storage.k8s.io/provisioner-secret-namespace': 'openshift-storage', imageFeatures: 'layering', imageFormat: '2', pool: 'example-storagecluster-cephblockpool' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' }, { metadata: { name: 'example-storagecluster-cephfs', selfLink: '/apis/storage.k8s.io/v1/storageclasses/example-storagecluster-cephfs', uid: 'fff93495-dd17-4335-a19e-aa5bdf31a78b', resourceVersion: '32795', creationTimestamp: '2019-11-08T08:38:15Z', ownerReferences: [ { apiVersion: 'ocs.openshift.io/v1', kind: 'StorageCluster', name: 'example-storagecluster', uid: '17c2b0e9-e1a2-4f1c-b2eb-14e885dc3e92', controller: true, blockOwnerDeletion: true } ] }, provisioner: 'openshift-storage.cephfs.csi.ceph.com', parameters: { clusterID: 'openshift-storage', 'csi.storage.k8s.io/node-stage-secret-name': 'rook-csi-cephfs-node', 'csi.storage.k8s.io/node-stage-secret-namespace': 'openshift-storage', 'csi.storage.k8s.io/provisioner-secret-name': 'rook-csi-cephfs-provisioner', 'csi.storage.k8s.io/provisioner-secret-namespace': 'openshift-storage', fsName: 'example-storagecluster-cephfilesystem' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' }, { metadata: { name: 'gp2', selfLink: '/apis/storage.k8s.io/v1/storageclasses/gp2', uid: 'a1140b0a-173e-4096-a398-5f4d5179bd66', resourceVersion: '16548', creationTimestamp: '2019-11-08T08:01:17Z', annotations: { 'storageclass.kubernetes.io/is-default-class': 'true' }, ownerReferences: [ { apiVersion: 'v1', kind: 'clusteroperator', name: 'storage', uid: 'd7dd2e85-6533-48e9-b797-4682c66f313a' } ] }, provisioner: 'kubernetes.io/aws-ebs', parameters: { encrypted: 'true', type: 'gp2' }, reclaimPolicy: 'Delete', allowVolumeExpansion: true, volumeBindingMode: 'WaitForFirstConsumer' }, { metadata: { name: 'openshift-storage.noobaa.io', selfLink: '/apis/storage.k8s.io/v1/storageclasses/openshift-storage.noobaa.io', uid: '729e8642-7947-40d6-b3c0-2bfd8cd8b2c4', resourceVersion: '36813', creationTimestamp: '2019-11-08T08:43:41Z', ownerReferences: [ { apiVersion: 'noobaa.io/v1alpha1', kind: 'NooBaa', name: 'noobaa', uid: '0eef6770-525b-43ed-a74f-30df335951f8', controller: true } ] }, provisioner: 'openshift-storage.noobaa.io/obc', parameters: { bucketclass: 'noobaa-default-bucket-class' }, reclaimPolicy: 'Delete', volumeBindingMode: 'Immediate' } ] }; var obj = { apiVersion: 'v1', items: [ { apiVersion: 'objectbucket.io/v1alpha1', kind: 'ObjectBucketClaim', metadata: { creationTimestamp: '2019-11-08T10:13:28Z', finalizers: [ 'objectbucket.io/finalizer' ], generation: 2, labels: { app: 'noobaa', 'bucket-provisioner': 'openshift-storage.noobaa.io-obc', 'noobaa-domain': 'openshift-storage.noobaa.io' }, name: 'obc-1', namespace: 'openshift-storage', resourceVersion: '73383', selfLink: '/apis/objectbucket.io/v1alpha1/namespaces/openshift-storage/objectbucketclaims/obc-1', uid: '5d5e9ef9-e9d2-44c4-bc97-28309185fda1' }, spec: { ObjectBucketName: 'obc-openshift-storage-obc-1', bucketName: 'obc-1-adcfc5d2-81fe-4550-a43c-d089236532ad', generateBucketName: 'obc-1', storageClassName: 'openshift-storage.noobaa.io' }, status: { phase: 'Bound' } }, { apiVersion: 'objectbucket.io/v1alpha1', kind: 'ObjectBucketClaim', metadata: { creationTimestamp: '2019-11-08T10:13:44Z', finalizers: [ 'objectbucket.io/finalizer' ], generation: 2, labels: { app: 'noobaa', 'bucket-provisioner': 'openshift-storage.noobaa.io-obc', 'noobaa-domain': 'openshift-storage.noobaa.io' }, name: 'obc-2', namespace: 'openshift-storage', resourceVersion: '73494', selfLink: '/apis/objectbucket.io/v1alpha1/namespaces/openshift-storage/objectbucketclaims/obc-2', uid: '88145d72-e580-4481-add5-92f505e13207' }, spec: { ObjectBucketName: 'obc-openshift-storage-obc-2', bucketName: 'obc-2-d521f540-4a59-4b8e-8fe5-3a2f50bb5a44', generateBucketName: 'obc-2', storageClassName: 'openshift-storage.noobaa.io' }, status: { phase: 'Bound' } } ], kind: 'List', metadata: { resourceVersion: '', selfLink: '' } }; const getName = (value) => _.get(value, 'metadata.name'); const getNoobaaStorageClass = (storageClassesList) => { const storageClasMap = new Map(null); storageClassesList.forEach((sc) => { if (_.endsWith(_.get(sc, 'provisioner'), 'noobaa.io/obc')) { const name = getName(sc); storageClasMap.set(name, name); } }); return storageClasMap; }; const getNoobaaObcs = (obcList, storageClassesList) => { const noobaaStorageClasses = getNoobaaStorageClass(storageClassesList); const result = obcList.filter((o) => { const storageClassName = _.get(o, 'spec.storageClassName'); return noobaaStorageClasses.has(storageClassName); }); return result.length; }; const test = a => { const b = []; for (i = 0; i < 500; i++) { b.push(...a); } return(b); }; getNoobaaObcs((obj.items), (obj2.items));
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
obusage
mapusage
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
It looks like you're sharing some YAML output and benchmark results. I'll do my best to help you with what's going on. The YAML output appears to be a list of ObjectBucketClaim objects, which are used in OpenShift Storage to manage object storage buckets. The `getNoobaaObcs` function is using this data to filter out ObjectBucketClaims that don't have a storage class from the "noobaa.io" namespace. The benchmark results show two tests: "mapusage" and "obusage". It looks like the second test ("mapusage") took significantly longer than the first test, with approximately 13.8 seconds (38178.20703125 / 2.80) compared to 0.47 seconds (34773.9609375 / 7.38). However, I'm not sure what's causing this difference in performance. Could you please provide more context or information about the tests being run and how they're related to each other? Are there any specific operations or use cases that might be influencing the performance results?
Related benchmarks:
Loop over object: lodash vs Object.entries 2
lodash vs for-of vs forEach vs map
lodash vs for-of vs forEach vs map v2
lodash mapValues vs vanilla Object.keys foreach vs lodash reduce
test123_123
Comments
Confirm delete:
Do you really want to delete benchmark?