[med-svn] [mummer] 07/07: improve performance of delta2maf
Andreas Tille
tille at debian.org
Sun Feb 4 15:07:12 UTC 2018
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository mummer.
commit 9e623381055a56b8264265d19772867e5f4394f5
Author: Andreas Tille <tille at debian.org>
Date: Sun Feb 4 16:06:43 2018 +0100
improve performance of delta2maf
---
debian/changelog | 6 +++
.../0009-improve-performance-of-delta2maf.patch | 56 ++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 63 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 49ee10a..2cc077e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mummer (3.23+dfsg-3) UNRELEASED; urgency=medium
+
+ * improve performance of delta2maf
+
+ -- Fabian Klötzl <fabian at kloetzl.info> Thu, 17 Nov 2016 21:44:58 +0200
+
mummer (3.23+dfsg-2) unstable; urgency=medium
* Deactivate broken patch from mugsy that was taken over in last Debian
diff --git a/debian/patches/0009-improve-performance-of-delta2maf.patch b/debian/patches/0009-improve-performance-of-delta2maf.patch
new file mode 100644
index 0000000..885c402
--- /dev/null
+++ b/debian/patches/0009-improve-performance-of-delta2maf.patch
@@ -0,0 +1,56 @@
+From: =?utf-8?q?Fabian_Kl=C3=B6tzl?= <fabian at kloetzl.info>
+Date: Fri, 5 Aug 2016 14:14:02 +0200
+Subject: improve performance of delta2maf
+
+---
+ src/tigr/delta2maf.cc | 23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/src/tigr/delta2maf.cc b/src/tigr/delta2maf.cc
+index f397f35..f47d797 100644
+--- a/src/tigr/delta2maf.cc
++++ b/src/tigr/delta2maf.cc
+@@ -378,8 +378,8 @@ void printAlignments
+
+ {
+
+- const char * IdR;
+- const char * IdQ;
++ const char * IdR, *previous_IdR = NULL;
++ const char * IdQ, *previous_IdQ = NULL;
+
+ map<string, char *>::iterator finditer;
+
+@@ -405,6 +405,7 @@ void printAlignments
+ long int sR, eR, sQ, eQ;
+ long int Apos, Bpos;
+ long int SeqLenR, SeqLenQ;
++ long int previous_SeqLenR = 0, previous_SeqLenQ = 0;
+ int frameR, frameQ;
+
+ //for ( i = 0; i < LINE_PREFIX_LEN; i ++ )
+@@ -426,7 +427,23 @@ void printAlignments
+ //printf("Looking for R:\"%s\" in map of size %d\n",IdR,seqsMap.size());
+ assert(finditer != seqsMap.end());
+ R = finditer->second;
+- SeqLenR = strlen(R+1);
++ // SeqLenR = strlen(R+1);
++
++ /**
++ * We don't want to recompute the length of a sequence for each
++ * iteration. This is especially important as many pairwise alignments
++ * are split into blocks and we thus do the same thing over and over
++ * again.
++ *
++ * My solution is to simply cache the current length value and reuse
++ * it in the next iteration given the IDs are equal. This speeds up
++ * the code by a factor of 20 (in words: twenty).
++ *
++ * -- Fabian Klötzl 2016-03-11
++ */
++ SeqLenR = IdR == previous_IdR ? previous_SeqLenR : strlen(R + 1);
++ previous_IdR = IdR;
++ previous_SeqLenR = SeqLenR;
+
+ if(DATA_TYPE == NUCMER_DATA){
+ seqsiter = seqsMapArray.find(make_pair(Ap->idR,1));
diff --git a/debian/patches/series b/debian/patches/series
index 72bcb76..9cb30cf 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,4 +5,5 @@ fix_sf_privacy_breach_issue.patch
hardening.patch
spelling.patch
addition_from_mugsy.patch
+0009-improve-performance-of-delta2maf.patch
# most probably broken see bug #843621 addition_from_report_duplicates.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/mummer.git
More information about the debian-med-commit
mailing list