The 2.x branch doesn't implement any type of cache, a lot of performance is lost because of that.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

dagmar’s picture

Status: Active » Needs review
FileSize
753 bytes

This small patch moves the module discover dependency from build() to loadFromActiveStore. So, when stop tracking and start tracking are called, the module checking is skipped.

Status: Needs review » Needs work

The last submitted patch, 1820748.module-discover-caching.1.patch, failed testing.

dagmar’s picture

Status: Needs work » Needs review
FileSize
5.96 KB

Lets try with this.

Status: Needs review » Needs work

The last submitted patch, 1820748.module-discover-caching.3.patch, failed testing.

GDrupal’s picture

Status: Needs work » Needs review
FileSize
2.01 KB

Cache wrapper function to getAllIdentifiers()

GDrupal’s picture

Status: Needs review » Needs work

last patch commited

MiSc’s picture

So should this be marked as fixed?

GDrupal’s picture

@MiSc not really we are still missing a few things, the import process it's taking too long for example. We need to found more ways to improve performance. I was out of ideas yesterday, I'm doing some automated test and I will comeback to this issue with a new perspective in some point.

dagmar’s picture

Title: Use cache to improve performance » Improve performance
Assigned: Unassigned » dagmar
Status: Needs work » Needs review
FileSize
12.27 KB

This patch contains some random stuff + some optimizations. Some test break with this but have some nice improvements in performance.

I'll continue working on this soon.

Status: Needs review » Needs work

The last submitted patch, 1820748-performance.patch, failed testing.

Anonymous’s picture

Issue summary: View changes

Updated issue summary.

bisonbleu’s picture

Issue summary: View changes

Hello, what is the status for this patch. Seeing that it's been 2 years, is it still relevant? Obsolete?

Thanks for clarifying.

Update: not obsolete! See below.

heddn’s picture

bump. this takes minutes for the gui to print on my site. not the same with features.

bisonbleu’s picture

@dagmar, is patch in #9 or parts of it at all usable? I'm trying to deal with timeout issues, especially with permissions.

Thanks

Update: looks like it is. I'm looking into it.

bisonbleu’s picture

Here are a recent project's stats for which I imported Tar files using CM. The first time you see refers to a local install, the second one (after vs) is on a shared hosting installation.

29 content types* 		(425 files): 2:00 vs 11:00
All other configs** 		(337 files): 1:20 vs 03:57
All Permissions 		(560 files): 3:35 vs 15:19
All Variables 		       (1090 files): 1:05 vs 01:00

* + dependencies + optionals
** excluding permissions and variables

Obviously, there's room for optimizations, especially for permissions. That being said, it worked and it's better than having to manually reproduce a lot of complex configurations.

Update: After applying @dagmar's patch (#9) on my local install and re-importing the Tar files.

29 content types* 		(425 files): 1:29 or 26% faster
All other configs** 		(337 files): 0:37 or 54% faster
All Permissions 		(560 files): 2:36 or 27% faster
All Variables 		       (1090 files): 0:13 or 80% faster

* + dependencies + optionals
** excluding permissions and variables

Awesome! Sorry it took 3 years, but thanks a bunch!

  • GDrupal committed 41f6283 on 7.x-3.x
    Issue #1820748: Cache wrapper function to getAllIdentifiers().
    
Volker23’s picture

I'm still waiting for a drush cexp -all while i found this issue. The comments to the patch looks promising so I'll give it a try. And while I'm writing this i got an "Allowed memory size" error on my local installation, where I increased the php memory step by step, right now at 2GB. Impossible to do something like this in a production environment...

Do you have a strategy or how-to to split the configuration in parts? Is that even possible? How do i get it togehter later on prod.? As far as i can see, each export has it's own tracked.inc. How to deal with this?

Any help appreciated! Thx!

bisonbleu’s picture

After a lot of experimentation, my strategy looks like this:

  • I don't use and stay away from the Synchronize tab (only works for very small websites).
  • I do most of my work from the Migrate tab.
  • I try to figure what I need to export and only export what I need e.g. a single content type with its dependencies, a few Views or Rules that have changed, ect.
  • Breaking it down in small discreet pieces (tar files) is what works for me.

Hope this helps.

dagmar’s picture

I have another approach to improve the performance of this module. It is described here: #2876984: New maintainer required