From mikeljx@126.com Tue Jun 22 11:33:22 2021 Return-Path: X-Original-To: gtkmm-list@gnome.org Delivered-To: gtkmm-list@gnome.org Received: from m15112.mail.126.com (m15112.mail.126.com [220.181.15.112]) by smtp.gnome.org (Postfix) with ESMTP id 3DFFAA3043 for ; Tue, 22 Jun 2021 11:33:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=MIME-Version:From:Subject:Date:Message-Id; bh=5MSff HcsQlXhd7xVf2tjHQ54KZcxDRo4klfKgmRflLo=; b=KAS5Mg4ItgsCu6HxIEQ2Z ZjOxBBt9aHiox5DScKdAMfSiAhZc3hMlHA5dYq1LkqQvcCWlY+Hq5GnR10Pe317L faxTVcx7w0uPNmOMIC1QZQJureiU58f/ZxXLA1URzXd4Goq4VCt0+EaMYtsxaYLV PQBLp196P1Y/lGyqU2XHRU= Received: from [IPv6:::ffff:10.135.21.53] (unknown [59.172.176.179]) by smtp2 (Coremail) with SMTP id DMmowACHG4BuytFgNJwZCg--.36548S2; Tue, 22 Jun 2021 19:33:03 +0800 (CST) MIME-Version: 1.0 To: "gtkmm-list@gnome.org" From: =?utf-8?Q?=E5=BB=96=E9=AA=8F=E8=BD=A9?= Subject: Memory leak when drawing with pangomm/cairomm (MSYS2) Date: Tue, 22 Jun 2021 19:33:03 +0800 Importance: normal X-Priority: 3 Content-Type: multipart/alternative; boundary="_A347094F-5D5E-414A-8BE4-31BC761EE69F_" X-CM-TRANSID: DMmowACHG4BuytFgNJwZCg--.36548S2 Message-Id: <60D1CA6F.07DA72.30902@m15112.mail.126.com> X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUUnQUUUUUU X-Originating-IP: [59.172.176.179] X-CM-SenderInfo: pplnvzlm06ij2wof0z/1tbirxC5BlpEA733XAAAsL X-Rspamd-Server: restaurant.gnome.org X-Spamd-Result: default: False [4.08 / 15.00]; BAYES_SPAM(0.00)[18.60%]; HAS_XOIP(0.00)[]; FREEMAIL_FROM(0.00)[126.com]; R_SPF_ALLOW(-0.20)[+ip4:220.181.12.0/22]; NEURAL_SPAM(4.99)[0.998]; MID_RHS_MATCH_FROMTLD(0.00)[]; DKIM_TRACE(0.00)[126.com:+]; MX_GOOD(-0.01)[]; HAS_X_PRIO_THREE(0.00)[3]; DMARC_POLICY_ALLOW(-0.50)[126.com,none]; RCVD_NO_TLS_LAST(0.10)[]; RECEIVED_SPAMHAUS_PBL(0.00)[59.172.176.179:received]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[126.com]; ASN(0.00)[asn:23724, ipnet:220.181.0.0/19, country:CN]; DWL_DNSWL_NONE(0.00)[126.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[126.com:s=s110527]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCPT_COUNT_ONE(0.00)[1]; BARRACUDA_RBL(0.00)[59.172.176.179:received]; RCVD_IN_DNSWL_NONE(0.00)[220.181.15.112:from]; TO_DN_EQ_ADDR_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 3DFFAA3043 X-BeenThere: gtkmm-list@gnome.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: gtkmm general discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2021 11:33:22 -0000 --_A347094F-5D5E-414A-8BE4-31BC761EE69F_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" I have just found out that the Windows version of my project has a massive = memory leak, while on Linux it seems alright. It uses pangomm and cairomm t= o display text, and I believe it=E2=80=99s similar to the examples in the o= nline book, =E2=80=9CProgramming with gtkmm4=E2=80=9D. queue_draw() is call= ed every 100 ms, and in a few minutes the memory usage would reach several = GB. If I don=E2=80=99t call queue_draw(), the memory used stays around 100 = MB. --_A347094F-5D5E-414A-8BE4-31BC761EE69F_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

I have just found out that the Win= dows version of my project has a massive memory leak, while on Linux it see= ms alright. It uses pangomm and cairomm to display text, and I believe it= =E2=80=99s similar to the examples in the online book, =E2=80=9CProgramming= with gtkmm4=E2=80=9D. queue_draw() is called every 100 ms, and in a few mi= nutes the memory usage would reach several GB. If I don=E2=80=99t call queu= e_draw(), the memory used stays around 100 MB.

<= /body>= --_A347094F-5D5E-414A-8BE4-31BC761EE69F_-- From mikeljx@126.com Tue Jun 22 11:38:46 2021 Return-Path: X-Original-To: gtkmm-list@gnome.org Delivered-To: gtkmm-list@gnome.org Received: from m1562.mail.126.com (m1562.mail.126.com [220.181.15.62]) by smtp.gnome.org (Postfix) with ESMTP id 5C5C0A3043 for ; Tue, 22 Jun 2021 11:38:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=5JvKQ WWlKpB+JdOoe/6lNbo7CtxhWiT6aAX36fAYbbg=; b=LUnpkwmQMfCWBmz1qA/i6 doC0ZbfXY2ik1JhQBubxXMLWdGcR3uqlGPESD7KgWhQphyF25/1DbNDHBcniRNLl QDnAmY7CF8Um55uOK7O9PGgSBcq+emWLhO6SbtsvOb41MtJua2zJJwKsAWQDhrKw zPmFvNTEtc0g5TlJULvfpo= Received: from mikeljx$126.com ( [113.57.80.114] ) by ajax-webmail-wmsvr62 (Coremail) ; Tue, 22 Jun 2021 19:38:41 +0800 (CST) X-Originating-IP: [113.57.80.114] Date: Tue, 22 Jun 2021 19:38:41 +0800 (CST) From: =?UTF-8?B?5buW6aqP6L2p?= To: "gtkmm-list@gnome.org" Subject: Memory leak when drawing with pangomm/cairomm (MSYS2) X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20210608(18587618) Copyright (c) 2002-2021 www.mailtech.cn 126com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Message-ID: <1e900b14.54ca.17a3383eca8.Coremail.mikeljx@126.com> X-Coremail-Locale: zh_CN X-CM-TRANSID: PsqowABHV+fCy9FgjHUDAA--.28059W X-CM-SenderInfo: pplnvzlm06ij2wof0z/1tbipBC5BlpEEFvz0AACs- X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== X-Rspamd-Server: restaurant.gnome.org X-Spamd-Result: default: False [4.94 / 15.00]; HAS_XOIP(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:220.181.12.0/22:c]; R_DKIM_REJECT(0.00)[126.com:s=s110527]; FREEMAIL_FROM(0.00)[126.com]; NEURAL_SPAM(4.68)[0.936]; DKIM_TRACE(0.00)[126.com:-]; DMARC_POLICY_ALLOW(0.00)[126.com,none]; MIME_BASE64_TEXT(0.10)[]; HAS_X_PRIO_THREE(0.00)[3]; DMARC_POLICY_ALLOW_WITH_FAILURES(-0.50)[]; MX_GOOD(-0.01)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[126.com]; ASN(0.00)[asn:23724, ipnet:220.181.0.0/19, country:CN]; BAYES_HAM(-0.13)[67.32%]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_ONE(0.00)[1]; MID_CONTAINS_FROM(1.00)[]; RCVD_IN_DNSWL_NONE(0.00)[220.181.15.62:from]; TO_DN_EQ_ADDR_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 5C5C0A3043 X-BeenThere: gtkmm-list@gnome.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: gtkmm general discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2021 11:38:46 -0000 CgpJIGhhdmUganVzdCBmb3VuZCBvdXQgdGhhdCB0aGUgV2luZG93cyB2ZXJzaW9uIG9mIG15IHBy b2plY3QgaGFzIGEgbWFzc2l2ZSBtZW1vcnkgbGVhaywgd2hpbGUgb24gTGludXggaXQgc2VlbXMg YWxyaWdodC4gSXQgdXNlcyBwYW5nb21tIGFuZCBjYWlyb21tIHRvIGRpc3BsYXkgdGV4dCwgYW5k IEkgYmVsaWV2ZSBpdOKAmXMgc2ltaWxhciB0byB0aGUgZXhhbXBsZXMgaW4gdGhlIG9ubGluZSBi b29rLCDigJxQcm9ncmFtbWluZyB3aXRoIGd0a21tNOKAnS4gcXVldWVfZHJhdygpIGlzIGNhbGxl ZCBldmVyeSAxMDAgbXMsIGFuZCBpbiBhIGZldyBtaW51dGVzLCB0aGUgbWVtb3J5IHVzYWdlIHdv dWxkIHJlYWNoIHNldmVyYWwgR0IuIElmIEkgZG9u4oCZdCBjYWxsIHF1ZXVlX2RyYXcoKSwgdGhl IG1lbW9yeSB1c2VkIHN0YXlzIGFyb3VuZCAxMDAgTUIuCkRvZXMgYW55b25lIGtub3cgd2hhdCBj YXVzZWQgdGhlIG1lbW9yeSBsZWFrPyBUaGFua3PvvIEKSGVyZSBpcyB3aGF0IHRoZSBjb2RlIGxv b2tzIGxpa2U6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNpbmNsdWRlICJLYmlEcmF3Lmgi CiNpbmNsdWRlIDxnbGlibW0vbWFpbi5oPgojaW5jbHVkZSA8c3N0cmVhbT4KCgpLYmlEcmF3OjpL YmlEcmF3KFBsYXllciogcF9wbGF5ZXIpCsKgIMKgIMKgIMKgIDoKwqAgwqAgwqAgwqAgcGxheWVy KHBfcGxheWVyKQp7CsKgIMKgIHNldF9jb250ZW50X3dpZHRoKDMwMCk7CsKgIMKgIHNldF9jb250 ZW50X2hlaWdodCgzMDApOwrCoCDCoCBzZXRfZXhwYW5kKHRydWUpOwrCoCDCoCBzZXRfZHJhd19m dW5jKHNpZ2M6Om1lbV9mdW4oKnRoaXMsICZLYmlEcmF3Ojpvbl9kcmF3KSk7CsKgIMKgIEdsaWI6 OnNpZ25hbF90aW1lb3V0KCkuY29ubmVjdChzaWdjOjptZW1fZnVuKCp0aGlzLCAmS2JpRHJhdzo6 cmVmcmVzaCksIDEwMCk7Cn0KCgpLYmlEcmF3Ojp+S2JpRHJhdygpCj0gZGVmYXVsdDsKCgp2b2lk IEtiaURyYXc6Om9uX2RyYXcoY29uc3QgQ2Fpcm86OlJlZlB0cjxDYWlybzo6Q29udGV4dD4mIGNy LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCnsKCgoKCsKgIMKgIC8vIERyYXcgYSBibGFjayByZWN0 YW5nbGUKwqAgwqAgY3ItPnNldF9zb3VyY2VfcmdiKDAuMCwgMC4wLCAwLjApOwrCoCDCoCBkcmF3 X3JlY3RhbmdsZShjciwgd2lkdGgsIGhlaWdodCk7CgoKwqAgwqAgLy8gYW5kIHNvbWUgd2hpdGUg dGV4dArCoCDCoCBjci0+c2V0X3NvdXJjZV9yZ2IoMS4wLCAxLjAsIDEuMCk7CsKgIMKgIGRyYXdf dGV4dChjciwgd2lkdGgsIGhlaWdodCk7CgoKwqAgwqAgQ2Fpcm86Ok1hdHJpeCBtYXRyaXgoMS4w LCAwLjAsIDAuMCwgLTEuMCwgMC4wLCBoZWlnaHQpOwoKCsKgIMKgIC8vIGFwcGx5IHRoZSBtYXRy aXgKwqAgwqAgY3ItPnRyYW5zZm9ybShtYXRyaXgpOwoKCn0KCgp2b2lkIEtiaURyYXc6OmRyYXdf cmVjdGFuZ2xlKGNvbnN0IENhaXJvOjpSZWZQdHI8Q2Fpcm86OkNvbnRleHQ+JiBjciwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KQp7CgoKwqAgwqAgY3ItPnJlY3RhbmdsZSgwLCAwLCB3aWR0aCwgaGVp Z2h0KTsKwqAgwqAgY3ItPmZpbGwoKTsKCgp9CgoKdm9pZCBLYmlEcmF3OjpkcmF3X3RleHQoY29u c3QgQ2Fpcm86OlJlZlB0cjxDYWlybzo6Q29udGV4dD4mIGNyLCBpbnQgcmVjdGFuZ2xlX3dpZHRo LCBpbnQgcmVjdGFuZ2xlX2hlaWdodCkKewoKCsKgIMKgIFBhbmdvOjpGb250RGVzY3JpcHRpb24g Zm9udDsKCgrCoCDCoCBmb250LnNldF9mYW1pbHkoIlNlcmlmIik7CsKgIMKgIGZvbnQuc2V0X3dl aWdodChQYW5nbzo6V2VpZ2h0OjpCT0xEKTsKwqAgwqAgZm9udC5zZXRfc2l6ZSgzNTAwMCk7CgoK wqAgwqAgc3RkOjpzdHJpbmdzdHJlYW0gZHJhd19ub3RlOwrCoCDCoCBhdXRvIGN1cnJlbnRfbm90 ZXMgPSBwbGF5ZXItPmdldF9jdXJyZW50X25vdGVzKCk7CsKgIMKgIGZvciAoY29uc3QgYXV0byYg bm90ZSA6IGN1cnJlbnRfbm90ZXMpIHsKwqAgwqAgwqAgwqAgZHJhd19ub3RlIDw8IG5vdGUgPDwg IiAiOwrCoCDCoCB9CgoKwqAgwqAgYXV0byBsYXlvdXQgPSBjcmVhdGVfcGFuZ29fbGF5b3V0KGRy YXdfbm90ZS5zdHIoKSk7CsKgIMKgIGxheW91dC0+c2V0X2ZvbnRfZGVzY3JpcHRpb24oZm9udCk7 CgoKwqAgwqAgaW50IHRleHRfd2lkdGg7CsKgIMKgIGludCB0ZXh0X2hlaWdodDsKCgrCoCDCoCAv L2dldCB0aGUgdGV4dCBkaW1lbnNpb25zIChpdCB1cGRhdGVzIHRoZSB2YXJpYWJsZXMgLS0gYnkg cmVmZXJlbmNlKQrCoCDCoCBsYXlvdXQtPmdldF9waXhlbF9zaXplKHRleHRfd2lkdGgsIHRleHRf aGVpZ2h0KTsKCgrCoCDCoCAvLyBQb3NpdGlvbiB0aGUgdGV4dCBpbiB0aGUgbWlkZGxlCsKgIMKg IGNyLT5tb3ZlX3RvKChyZWN0YW5nbGVfd2lkdGggLSB0ZXh0X3dpZHRoKS8yLCAocmVjdGFuZ2xl X2hlaWdodCAtIHRleHRfaGVpZ2h0KS8yKTsKCgrCoCDCoCBsYXlvdXQtPnNob3dfaW5fY2Fpcm9f Y29udGV4dChjcik7CgoKfQoKCmJvb2wgS2JpRHJhdzo6cmVmcmVzaCgpCnsKwqAgwqAgcXVldWVf ZHJhdygpOwrCoCDCoCByZXR1cm4gdHJ1ZTsKfQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= From kjellahlstedt@gmail.com Fri Jun 25 07:26:11 2021 Return-Path: X-Original-To: gtkmm-list@gnome.org Delivered-To: gtkmm-list@gnome.org Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by smtp.gnome.org (Postfix) with ESMTPS id 177FDA02D3 for ; Fri, 25 Jun 2021 07:26:11 +0000 (UTC) Received: by mail-lf1-x136.google.com with SMTP id t17so14797713lfq.0 for ; Fri, 25 Jun 2021 00:26:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=Eo3jd6DCr5cHUVq+xzNB2wQhyYFh4AQPcJkGwTPOB/w=; b=X9agZ19lhRDEKWL4Bb+lcvTEJd+sLQeS6ipoqKE95YYprnBg+aoDCJP+VIOlEo8nA7 44CmY4SuD1qOrq15wYDsBHuLX2BlYa60DuK1KUMlRVkETICiHW3Kz0Tf5n1Ar7TKPvUC zTv76NUtSlxp3SNXhHg2pJnN0iH4C7VXMZA/qwJ4dWYgm0gXAsf1hcN0h6pNUbX9VzFA ACirTGFjt8GdupbRCW7Um696xETq8O1IIsW5k8N458go+bm2Br3d6fflbKtofmrVowJ0 tBZ9VgG8I07TU4sR2DupGNFRTAYGWr5YGA6idq0lNdolQQ+hpZsxYpuyMyIwqXnLboyz vFhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=Eo3jd6DCr5cHUVq+xzNB2wQhyYFh4AQPcJkGwTPOB/w=; b=rv+PmQF7vLI8CRjQ4sb0erLbdtL00KFd/0wUwTIAF+EtnRYtZOWBSC1qNToKkukLUb qWIPiGccNi8BIAymCo0OKK6EKlBReme5s3AKNzxPbQo5828/vs5Qvq6KBVVtS9cWraDq Qq/fqlzhU/Qcw6Z1u/W03/xybmvUWF5KqbeF/TFwIsPCFUdnmM+NsrvvZIMnEUYGI8X6 MFvPMJ1eN4ncPztS+acQHmRYkwxyIZo/Aw2AcmXoHxaEPfoEeeivwKHMVqLHfM6zGv4K 7KTIb6nRxhA+rg1CSSD1N1Yd3gsDC/rV8zzQ6sqGDaCwCVMeiFZMYE9TmjJRmKkNbAZV b/9Q== X-Gm-Message-State: AOAM533aXUKJVYZqJJHXZZU0hirR4WSmd+2V1vcciJXp3zYH4JAExkXB cxwdfJr/NeD2LrUEUI6/d3US3L/dGko= X-Google-Smtp-Source: ABdhPJwyaJayLc6XbLo60Hfairehaz2FSXg27EMwf4uIpiGJbDH1x1VO2FseA3FMbGs33wLkFIiDjw== X-Received: by 2002:a05:6512:239f:: with SMTP id c31mr6843972lfv.47.1624605968855; Fri, 25 Jun 2021 00:26:08 -0700 (PDT) Received: from [192.168.1.64] (81-232-135-79-no43.tbcn.telia.com. [81.232.135.79]) by smtp.gmail.com with ESMTPSA id f23sm513416ljn.98.2021.06.25.00.26.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Jun 2021 00:26:08 -0700 (PDT) Subject: Re: Memory leak when drawing with pangomm/cairomm (MSYS2) To: =?UTF-8?B?5buW6aqP6L2p?= References: <1e900b14.54ca.17a3383eca8.Coremail.mikeljx@126.com> Cc: "gtkmm-list@gnome.org" From: Kjell Ahlstedt Message-ID: <0e678661-7643-6712-38ee-0c8794ede0e3@gmail.com> Date: Fri, 25 Jun 2021 09:26:07 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1e900b14.54ca.17a3383eca8.Coremail.mikeljx@126.com> Content-Type: multipart/alternative; boundary="------------32F26BE906AA94C559F0B3C7" Content-Language: en-US X-Rspamd-Server: restaurant.gnome.org X-Spamd-Result: default: False [-1.03 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; RCVD_COUNT_THREE(0.00)[3]; MX_GOOD(-0.01)[]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; DKIM_TRACE(0.00)[gmail.com:+]; FREEMAIL_TO(0.00)[126.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; BAYES_HAM(-0.02)[52.27%]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[gtkmm-list@gnome.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::136:from]; NEURAL_HAM(-0.00)[-1.000]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Queue-Id: 177FDA02D3 X-BeenThere: gtkmm-list@gnome.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: gtkmm general discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2021 07:26:11 -0000 This is a multi-part message in MIME format. --------------32F26BE906AA94C559F0B3C7 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Den 2021-06-22 kl. 13:38, skrev 廖骏轩 via gtkmm-list: > I have just found out that the Windows version of my project has a massive memory leak, while on Linux it seems alright. It uses pangomm and cairomm to display text, and I believe it’s similar to the examples in the online book, “Programming with gtkmm4”. queue_draw() is called every 100 ms, and in a few minutes, the memory usage would reach several GB. If I don’t call queue_draw(), the memory used stays around 100 MB. > Does anyone know what caused the memory leak? Thanks! I don't know what caused the memory leak, but I'd like to give you a few suggestions for trouble-shooting. The C++ bindings (gtkmm, pangomm, etc.) have no or extremely little code that's not identical on Windows and Linux. In the first place, suspect one of the underlying C modules (gtk, pango, etc.). Do you know if there's a similar memory leak with gtkmm3? If there's no memory leak with gtkmm3, suspect gtk4. Remove more and more of the code, possibly until there's nothing left to draw for queue_draw(). If the memory leak disappears at some step, you may have found the function that leaks memory. Is valgrind or a similar memory analyzer available on Windows? If so, it can probably tell you who allocates a huge amount of memory. --------------32F26BE906AA94C559F0B3C7 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit
Den 2021-06-22 kl. 13:38, skrev 廖骏轩 via gtkmm-list:
I have just found out that the Windows version of my project has a massive memory leak, while on Linux it seems alright. It uses pangomm and cairomm to display text, and I believe it’s similar to the examples in the online book, “Programming with gtkmm4”. queue_draw() is called every 100 ms, and in a few minutes, the memory usage would reach several GB. If I don’t call queue_draw(), the memory used stays around 100 MB.
Does anyone know what caused the memory leak? Thanks!

I don't know what caused the memory leak, but I'd like to give you a few suggestions for trouble-shooting.

The C++ bindings (gtkmm, pangomm, etc.) have no or extremely little code that's not identical on Windows and Linux. In the first place, suspect one of the underlying C modules (gtk, pango, etc.).

Do you know if there's a similar memory leak with gtkmm3? If there's no memory leak with gtkmm3, suspect gtk4.

Remove more and more of the code, possibly until there's nothing left to draw for queue_draw(). If the memory leak disappears at some step, you may have found the function that leaks memory.

Is valgrind or a similar memory analyzer available on Windows? If so, it can probably tell you who allocates a huge amount of memory.

--------------32F26BE906AA94C559F0B3C7-- From dboles.src@gmail.com Fri Jun 25 07:52:34 2021 Return-Path: X-Original-To: gtkmm-list@gnome.org Delivered-To: gtkmm-list@gnome.org Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by smtp.gnome.org (Postfix) with ESMTPS id 4002DA0566 for ; Fri, 25 Jun 2021 07:52:33 +0000 (UTC) Received: by mail-lj1-x234.google.com with SMTP id d13so11299123ljg.12 for ; Fri, 25 Jun 2021 00:52:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=vn9WtPqb4hZh1Xm/sekielGVzMPc5pD0OYhb8JZNZGk=; b=jAAeswu9+MNs7ieHk90Yw4HkmIncoUK5ocQ79iD6CKxoNhNr9Qv9Lev69yetrIWHSE 4ZywDPvIBXMzTH2NxWJJ7PEw+ugfunIB7tcoiACVRuzJb4a40Qtoo1nyMouGqs3diM8Q o9yrgQwOp0hiMNxuAJ5Qf/aXlWQngp6GHU01uIDBX/7K5tfDmEnueTVgcNTyQ1duAchZ jHdvl8hfa0PCV7B0iynM9h6OMroz5xDdOGvbHM1WbOwgnVyIhp3Fz1YpP7Djtauiq5mr VcWEe6l58ku092o+iq5pWH5p05vUe7G5b65Fl+Iy+ZNVo9K4CZmjC284Gnosrj4YEi4B 2JHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=vn9WtPqb4hZh1Xm/sekielGVzMPc5pD0OYhb8JZNZGk=; b=iuCExLBvHuIstpawqIzhbnsP6724UzrwPn3PwTy2m5PihyIzdOG2EcLlAPRDFIE/AA RYg8fEMx9o59D1OyEkjFfuE9NDQSqf1gY2v5cHSF7TEC8+sUuQQXuTorCPki8dlELluz xMbLQS5l++21ovccLbMHzOGVBzkSmLRkUmnhv8jyOPEaDO8NEkxgOz4psQAZ456LGCsD xXfHtOWad1vECUNzVmPoEBNTWKNY9/kdxXAbTOjc0Kf225SFFjDZra0pNCfrKaxmHTvZ JqsWTArB7CV9ivQpMwuCqU9OMK4UKv+JHjTmSukDyINzlk+wFZvl8dusxDA7uP2HOvmQ q/Aw== X-Gm-Message-State: AOAM532/0XQfzJzb5Q2F6/D63kLdC3sfV54euwhCKFQRkMmBmPKbGsLR hYGVKE4qq8EtJq7K+Goed2+AXMUH2+CBuA5jIjMYM+ik X-Google-Smtp-Source: ABdhPJxUw46QdOUlBmrW+obqiIhf6SyvHvlTC8O/fPxetLLyFTVRMK6IyzvDpPgPorxRTzzoriQdsBv6KkgytZYIWPU= X-Received: by 2002:a2e:96ce:: with SMTP id d14mr4154655ljj.32.1624607550962; Fri, 25 Jun 2021 00:52:30 -0700 (PDT) MIME-Version: 1.0 References: <1e900b14.54ca.17a3383eca8.Coremail.mikeljx@126.com> <0e678661-7643-6712-38ee-0c8794ede0e3@gmail.com> In-Reply-To: <0e678661-7643-6712-38ee-0c8794ede0e3@gmail.com> From: Daniel Boles Date: Fri, 25 Jun 2021 08:52:18 +0100 Message-ID: Subject: Re: Memory leak when drawing with pangomm/cairomm (MSYS2) To: gtkmm-list Content-Type: multipart/alternative; boundary="000000000000f97e8905c5926bca" X-Rspamd-Server: restaurant.gnome.org X-Spamd-Result: default: False [-1.02 / 15.00]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; BAYES_HAM(-0.01)[50.73%]; FROM_HAS_DN(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[gtkmm-list@gnome.org]; RCPT_COUNT_ONE(0.00)[1]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_DN_ALL(0.00)[]; MX_GOOD(-0.01)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::234:from]; NEURAL_HAM(-0.00)[-1.000]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; TAGGED_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 4002DA0566 X-BeenThere: gtkmm-list@gnome.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: gtkmm general discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2021 07:52:34 -0000 --000000000000f97e8905c5926bca Content-Type: text/plain; charset="UTF-8" Yeah, it's probably a C lib, and ASan or Val/MemGrind should be able to identify leaks pretty well. --000000000000f97e8905c5926bca Content-Type: text/html; charset="UTF-8"
Yeah, it's probably a C lib, and ASan or Val/MemGrind should be able to identify leaks pretty well.

--000000000000f97e8905c5926bca-- From mikeljx@126.com Fri Jun 25 09:36:00 2021 Return-Path: X-Original-To: gtkmm-list@gnome.org Delivered-To: gtkmm-list@gnome.org Received: from m15112.mail.126.com (m15112.mail.126.com [220.181.15.112]) by smtp.gnome.org (Postfix) with ESMTP id CAC82A3047 for ; Fri, 25 Jun 2021 09:35:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Mime-Version:Subject:Date:Message-Id; bh=jo6wM fuK881Flb9S2hE4ppHx3jiRXh3E77wVrcMGtYw=; b=cN6eFjMl+vwESPcodeu5J iz2UE8rOWo0E3Oh2ruamqQZEiWCfCSOC74aLU/eeNIyZEM8s/FOgtrR4wq0GqqyM Qx8WxS9Fqy6vNpK+fzXOTqRDKQOmjVn2bbAlmXaNVJxnU5p3PYFUXrA1/tJ3Zgyb RfPSmDHxWs5s60q0xT+Fh4= Received: from smtpclient.apple (unknown [59.172.176.181]) by smtp2 (Coremail) with SMTP id DMmowADXWUdwo9Vgrd1nCg--.50367S2; Fri, 25 Jun 2021 17:35:46 +0800 (CST) Content-Type: multipart/alternative; boundary=Apple-Mail-51F39611-B3BA-4E02-8CDD-AD5A443183BA Content-Transfer-Encoding: 7bit From: =?utf-8?B?5buW6aqP6L2p?= Mime-Version: 1.0 (1.0) Subject: Re: Memory leak when drawing with pangomm/cairomm (MSYS2) Date: Fri, 25 Jun 2021 17:35:43 +0800 Message-Id: <2D1666DA-AF50-4CB0-B0CF-8E59A4E965E8@126.com> References: <0e678661-7643-6712-38ee-0c8794ede0e3@gmail.com> Cc: gtkmm-list@gnome.org In-Reply-To: <0e678661-7643-6712-38ee-0c8794ede0e3@gmail.com> To: Kjell Ahlstedt X-Mailer: iPhone Mail (18F72) X-CM-TRANSID: DMmowADXWUdwo9Vgrd1nCg--.50367S2 X-Coremail-Antispam: 1Uf129KBjvJXoWrtw1rZw48tFyxAF18KFW8Xrb_yoW8Jr15pF sxtrn3Cr1qywnaqryxXr18GrW29aykWa15Kas3Zr98C3sxtw17tr1xtFZ8Z3y7JF4xJw4U XayI9F18A3WDua7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0zRnmi_UUUUU= X-Originating-IP: [59.172.176.181] X-CM-SenderInfo: pplnvzlm06ij2wof0z/1tbijBK8BlpEEGegJAABsI X-Rspamd-Server: restaurant.gnome.org X-Spamd-Result: default: False [-0.41 / 15.00]; HAS_XOIP(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[126.com]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ip4:220.181.12.0/22]; DKIM_TRACE(0.00)[126.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[126.com,none]; MX_GOOD(-0.01)[]; FREEMAIL_TO(0.00)[gmail.com]; RCVD_NO_TLS_LAST(0.10)[]; RECEIVED_SPAMHAUS_PBL(0.00)[59.172.176.181:received]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[126.com]; ASN(0.00)[asn:23724, ipnet:220.181.0.0/19, country:CN]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[126.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[126.com:s=s110527]; BAYES_HAM(-0.00)[19.51%]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[220.181.15.112:from]; NEURAL_HAM(-0.00)[-1.000]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: CAC82A3047 X-BeenThere: gtkmm-list@gnome.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: gtkmm general discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Jun 2021 09:36:00 -0000 --Apple-Mail-51F39611-B3BA-4E02-8CDD-AD5A443183BA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thanks for your suggestions!=20 I have already tried removing some of the code, and the memory leak persists= even if there=E2=80=99s nothing to draw. But it may be other problems elsew= here, so I will try to construct a minimum project later and try other thing= s if I have the time. By the way, there=E2=80=99s no valgrind on Windows, and I will first try wit= hout such tools as I don=E2=80=99t frequently use Windows. > =E5=9C=A8 2021=E5=B9=B46=E6=9C=8825=E6=97=A5=EF=BC=8C=E4=B8=8B=E5=8D=883:2= 6=EF=BC=8CKjell Ahlstedt =E5=86=99=E9=81=93=EF=BC=9A= >=20 > I don't know what caused the memory leak, but I'd like to give you a few s= uggestions for trouble-shooting. >=20 > The C++ bindings (gtkmm, pangomm, etc.) have no or extremely little code t= hat's not identical on Windows and Linux. In the first place, suspect one of= the underlying C modules (gtk, pango, etc.). >=20 > Do you know if there's a similar memory leak with gtkmm3? If there's no me= mory leak with gtkmm3, suspect gtk4. >=20 > Remove more and more of the code, possibly until there's nothing left to d= raw for queue_draw(). If the memory leak disappears at some step, you may ha= ve found the function that leaks memory. >=20 > Is valgrind or a similar memory analyzer available on Windows? If so, it c= an probably tell you who allocates a huge amount of memory. --Apple-Mail-51F39611-B3BA-4E02-8CDD-AD5A443183BA Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

Thanks for your suggestions!=  

I have already tried removing some of the code, and the m= emory leak persists even if there=E2=80=99s nothing to draw. But it may be o= ther problems elsewhere, so I will try to construct a minimum project later a= nd try other things if I have the time.

By the way,= there=E2=80=99s no valgrind on Windows, and I will first try without such t= ools as I don=E2=80=99t frequently use Windows.

=E5=9C=A8 2021=E5=B9=B46=E6=9C=8825=E6=97=A5=EF=BC=8C=E4= =B8=8B=E5=8D=883:26=EF=BC=8CKjell Ahlstedt <kjellahlstedt@gmail.com> =E5= =86=99=E9=81=93=EF=BC=9A

I don't know what caused the memory l= eak, but I'd like to give you a few suggestions for trouble-shooting.

The C++ bindings (gtkmm, pangomm, etc.) have no or extremely little code that's not identical on Windows and Linux. In the first place, suspect one of the underlying C modules (gtk, pango, etc.).

Do you know if there's a similar memory leak with gtkmm3? If there's no memory leak with gtkmm3, suspect gtk4.<= /p>

Remove more and more of the code, possibly until there's nothing left to draw for queue_draw(). If the memory leak disappears at some step, you may have found the function that leaks memory.

Is valgrind or a similar memory analyzer available on Windows? If so, it can probably tell you who allocates a huge amount of memory.

= --Apple-Mail-51F39611-B3BA-4E02-8CDD-AD5A443183BA--