{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2011/07/13/data-nonotify-or-silent.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/zq2m3-dxp07",
      "url": "https://chem-bla-ics.linkedchemistry.info/2011/07/13/data-nonotify-or-silent.html",
      "title": "Data, Nonotify, or Silent?",
      "content_html": "<p>I cannot find the bug report just now, but the <a href=\"http://cdk.sf.net/\">CDK</a> has an open problem with change even notification,\nwhere the nonotify classes still caused change event to be sent around.</p>\n\n<p>This was because the nonotify classes extended in a wrong way the data classes. So, I worked today on copying the data class\nimplementations into a new implementation, not extending the data classes, while removing the listener code: the <em>silent</em>\nmodule. I’m not entirely done yet, but close enough to blog about it. While checking things, I ran the\n<a href=\"https://github.com/egonw/cheminfbenchmark\">cheminfbench</a> code on it, with these results:</p>\n\n<p><img src=\"/assets/images/silent.png\" alt=\"\" /></p>\n\n<p>So, removal of the notification listening improves the performance, when reading a 416 entry SD file. I think the difference\nwill be more significant for other tasks, like ring finding.</p>\n\n<p>But, but…?!?! Yeah, this is a rather weird plot indeed… the blue bar should also be lower than the red one! And it used\nto be too… :( Bad regression… hard to unit test too :(</p>\n\n<p>OK, back to some final clean up.</p>\n\n<p><strong>Update</strong>: the clean up is done, and I have now run the fingerprint benchmark from cheminfbench using the new module and\nnonotify. In a situation when change events are much more used (as is with fingerprint calculation), we see that nonotify\nstill improves speed, and that the new silent module shows about the same speed up. We also see that the 1.4.x classes\nare a bit slower than one classes of some 20 months ago. That probably reflects\n<a href=\"https://sourceforge.net/tracker/?func=detail&amp;aid=2992921&amp;group_id=20024&amp;atid=120024\">bug 2992921</a> that was recently fixed.\nThe full bar plot:</p>\n\n<p><img src=\"/assets/images/silent1.png\" alt=\"\" /></p>\n\n<p>Red and blue are CDK 1.2.x (as the plot legend says), green and yellow the same for CDK 1.3.x (and both clearly faster than\nthe 1.2 series, and purple an light blue the same for CDK 1.4.0. The last bar is the new silent module, a tid bit slower\nthan nonotify.</p>\n\n<p><strong>Update 2</strong>: OK, one last update. The performance difference can actually be larger than this. The below screen shot shows\nthe effect of the silent module (blue, yellow) on SMILES generation (without and with lower case formalism, red and green\nrespectively):</p>\n\n<p><img src=\"/assets/images/silent2.png\" alt=\"\" /></p>\n\n<p>If you did not get it yet, if you bring your system to production level, do not use the default implementation,\n<strong><em>unless</em></strong> you really need to change notifications.</p>",
      "summary": "I cannot find the bug report just now, but the CDK has an open problem with change even notification, where the nonotify classes still caused change event to be sent around.",
      
      "date_published": "2011-07-13T00:00:00+00:00",
      "date_modified": "2011-07-13T00:00:00+00:00",
      "tags": ["cdk"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
