Re: [Banshee-List] [banshee] Show multi-line strings on one line in the ColumnCellText (bgo#591802)



Hi,

I'm a bit late, but I'd like to point that the patch below potentially
causes a lot of additional method calls and string allocations.

I did a quick profiling session, doing these actions : start banshee,
scroll the listview of my whole library (about 2000 tracks), quit
banshee.
Here are the relevant parts of the "mono --profile" output.

Before the patch :

Time(ms) Count   P/call(ms) Method name
########################
  44.652   14484    0.003   System.String::Replace(string,string)
  Callers (with count) that contribute at least for 1%:
       14032  96 %
NDesk.DBus.MatchRule::Append(StringBuilder,string,string)
         248   1 %
Mono.Addins.Database.ProcessProgressStatus::Decode(string)
         149   1 %
Banshee.GnomeBackend.GConfConfigurationClient::CreateKey(string,string)

Total mem   Method
########################
     933 KB System.String::ReplaceUnchecked(string,string)
         933 KB    14335
System.String                                   
  Callers (with count) that contribute at least for 1%:
       14484  100 % System.String::Replace(string,string)



After the patch :

Time(ms) Count   P/call(ms) Method name
########################
 221.986  110715    0.002   System.String::Replace(string,string)
  Callers (with count) that contribute at least for 1%:
       96231  86 %
Hyena.Data.Gui.ColumnCellText::UpdateLayout(Layout,string)
       14032  12 %
NDesk.DBus.MatchRule::Append(StringBuilder,string,string)

Total mem   Method
########################
    1833 KB System.String::ReplaceUnchecked(string,string)
        1833 KB    42548
System.String                                   
  Callers (with count) that contribute at least for 1%:
      110715  100 % System.String::Replace(string,string)


This is of course very un-scientific, but I thought I'd throw it out
there, so that maybe someone would come up with a way to optimize this.

Cheers,

--
Bertrand


On Thu, 2009-09-10 at 12:43 +0000, Alexander Kojevnikov wrote:
> commit 9c986d97770e204a54d5741697348d449eefeb99
> Author: Alexander Kojevnikov <alexander kojevnikov com>
> Date:   Thu Sep 10 22:41:57 2009 +1000
> 
>     Show multi-line strings on one line in the ColumnCellText (bgo#591802)
> 
>  .../Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs     |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> ---
> diff --git a/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs b/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs
> index 484a292..f44cc28 100644
> --- a/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs
> +++ b/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs
> @@ -108,6 +108,7 @@ namespace Hyena.Data.Gui
>          private void UpdateLayout (Pango.Layout layout, string text)
>          {
>              string final_text = GetFormattedText (text);
> +            final_text = final_text.Replace ("\r\n", "\x20").Replace ("\n", "\x20").Replace ("\r", "\x20");
>              if (use_markup) {
>                  layout.SetMarkup (final_text);
>              } else {
> _______________________________________________
> SVN-commits-list mailing list (read only)
> http://mail.gnome.org/mailman/listinfo/svn-commits-list
> 
> Want to limit the commits to a few modules? Go to above URL, log in to edit your options and select the modules ('topics') you want.

Attachment: signature.asc
Description: This is a digitally signed message part



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