nemo r81 - trunk/broker



Author: arj
Date: Thu Feb  7 14:37:30 2008
New Revision: 81
URL: http://svn.gnome.org/viewvc/nemo?rev=81&view=rev

Log:
Improve performance by using StringBuilder instead of concatting strings



Modified:
   trunk/broker/Xesam.cs

Modified: trunk/broker/Xesam.cs
==============================================================================
--- trunk/broker/Xesam.cs	(original)
+++ trunk/broker/Xesam.cs	Thu Feb  7 14:37:30 2008
@@ -154,22 +154,25 @@
 					
 					System.Console.WriteLine("search xesam for {0} files with session id {1}, trying to get {2}", tmp_filenames.Count, this_session_id, tmp_filenames.Count);
 
-					string xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
-						"<request xmlns=\"http://freedesktop.org/standards/xesam/1.0/query\";>" +
-						"  <query>" +
-						"    <inSet> " +
-						"      <field name=\"xesam:url\"/> ";
-
-					foreach (string filename in tmp_filenames)
-						xml_string += "      <string>" + "file://" + filename + "</string> ";
-
-					xml_string += "    </inSet> ";
-					xml_string += "  </query> ";
-					xml_string += "</request> ";
+					System.Text.StringBuilder b = new System.Text.StringBuilder(
+                         @"<?xml version=""1.0"" encoding=""UTF-8""?>
+						   <request xmlns=""http://freedesktop.org/standards/xesam/1.0/query"";>
+						   <query>
+						   <inSet><field name=""xesam:url""/>");
+
+					foreach (string filename in tmp_filenames) {
+						b.Append("<string>file://");
+						b.Append(filename);
+						b.Append("</string>");
+					}
+
+					b.Append(@"</inSet>
+							   </query>
+							   </request>");
 
 //					System.Console.WriteLine(xml_string);
 
-					string search_id = bus_search.NewSearch(this_session_id, xml_string); 
+					string search_id = bus_search.NewSearch(this_session_id, b.ToString()); 
 
 					hits_added_callbacks.Add(search_id, new Callback(tmp_filenames.Count, delegate(ref int count, UInt32 amount) {
 						System.Console.WriteLine("hits added in get metadata: {0} - {1}", amount, this_session_id);
@@ -217,21 +220,21 @@
        		string session_id = bus_search.NewSession();
 			bus_search.SetProperty(session_id, "hit.fields", new string[] { "snippet" });
 
-			string xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
-"<request xmlns=\"http://freedesktop.org/standards/xesam/1.0/query\";>" +
-"  <query>" +
-"   <and>" +
-"    <inSet> " +
-"      <field name=\"xesam:url\"/> " +
-"      <string>" + "file://" + uri + "</string> " + 
-"    </inSet> " +
-"    <fullText> " +
-"      <string>" + search_string + "</string> " +
-"    </fullText> " +
-"   </and>" +
-"  </query> " +
-"</request> ";
-		
+			string xml_string = String.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
+					<request xmlns=""http://freedesktop.org/standards/xesam/1.0/query"";>
+  						<query>
+   <and>
+    <inSet>
+      <field name=""xesam:url""/>
+      <string>file://{0}</string> 
+    </inSet> 
+    <fullText> 
+      <string>{1}</string> 
+    </fullText> 
+   </and>
+  </query> 
+</request>", uri, search_string);
+	
 			string search_id = bus_search.NewSearch(session_id, xml_string);
 
 			hits_added_callbacks.Add(search_id, new Callback(1, delegate(ref int count, UInt32 amount) {
@@ -289,20 +292,21 @@
 
 					bool got_results = false;
 	
-					string xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
-"<request xmlns=\"http://freedesktop.org/standards/xesam/1.0/query\";>" +
-"  <query>" +
-"    <and> " +
-"    <inSet> " +
-"      <field name=\"mime\"/> " +
-Helpers.reduce_to_string(Helpers.map_strings(string_start(), supported_mimetypes, string_end()))  +
-"    </inSet> " +
-"    <fullText> " +
-"      <string>" + search_string + "</string> " +
-"    </fullText> " +
-"    </and> " +
-"  </query> " +
-"</request> ";
+					string xml_string = String.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
+<request xmlns=""http://freedesktop.org/standards/xesam/1.0/query"";>
+  <query>
+    <and>
+    <inSet>
+      <field name=""mime""/>{0}
+    </inSet>
+    <fullText>
+      <string>{1}</string>
+    </fullText>
+    </and>
+  </query>
+</request>",
+Helpers.reduce_to_string(Helpers.map_strings(string_start(),
+supported_mimetypes, string_end())), search_string);
 
 //					System.Console.WriteLine(xml_string);
 
@@ -327,7 +331,7 @@
 
 							foreach (object[] r in result) {
 								filenames.Add((r[0] as string).Substring(7)); // cut file://
-								System.Console.WriteLine((r[0] as string).Substring(7));
+								//System.Console.WriteLine((r[0] as string).Substring(7));
 							}
 							
 							System.Console.WriteLine("search metadata store for {0} files", filenames.Count);
@@ -396,4 +400,4 @@
 	        });
 		}
 	}
-}
\ No newline at end of file
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]