在大图像上绘制可编辑的形状 - 性能问题

时间:2015-09-10 22:49:24

标签: ios xamarin xamarin.ios core-graphics

我正在使用Xamarin创建绘图应用。尽管如此,我的问题也是针对iOS开发人员的。

我的应用加载了巨大的图像(20k x 20k)。我使用CATiledLayer动态加载图片切片。多亏了这一点,变焦和scrool运行顺利。

但是,我需要实施有效的绘图机制。我的第一次尝试是将形状绘制为单独的UIView并将其添加到TiledView的子视图中。不幸的是,当我添加大约20/30个新形状然后应用程序崩溃(我猜它是内存问题)。

我需要找到更好的解决方案。我的形状需要是可编辑的,所以我需要识别已经在TiledView上绘制的每个形状的选择。

在这种情况下,什么可能是避免内存故障的最佳机制?

CRASH LOG:

ncident标识符:C9C8CCA2-C696-47E2-AA9D-A8C31FFBAF31 CrashReporter密钥:a67a03df60dd7720558ad435b234abe43d11b3f7 硬件型号:iPad5,4 操作系统版本:iPhone OS 8.1.3(12B466) 内核版本:Darwin内核版本14.0.0:1月12日星期一21:30:33太平洋标准时间2015;根:XNU-2783年3月26日〜3 / RELEASE_ARM64_T7001 日期:2015-09-10 17:03:33 +0200 快照时间:90毫秒

免费页面:1933年 活动页面:121405 非活动页面:60751 推测页面:80 限制页面:0 可清除的页面:2 有线页面:315568 文件支持的页面:58380 匿名页面:123856 压缩:1741284 减压:447152 压缩机尺寸:8767 Compressor中未压缩的页面:74266 页面大小:16384 最大的流程:MyAppMobileiOS

流程      名称| | CPU时间| rpages |可清除| recent_max | lifetime_max | fds | [原因] | (状态)

     lockbot <53895193cd6633249ce169c478502497>         0.055         202                0           -           725   50                       (daemon) (idle)
     pfd <8ce9eb62121b30789b79e1f436991382>         0.015         142                0           -           292   50                       (daemon) (idle)
     cloudd <c52c2112d0273e96b8590473a61e7620>         6.121         690                0           -          2504   50                       (daemon) (idle)
     WirelessRadioMan <c4181e6d863133e8aa0c95e77a7bb206>         0.026         289                0           -           835   50                       (daemon) (idle)
     adid <4311d58b77b73fd4bf2c9e9e0bbe7102>         0.028         138                0           -           567   50                       (daemon) (idle)
     com.apple.Mobile <a1ced7e68eda30b1937b477edc680e47>         0.020         185                0           -           716   50                       (daemon) (idle)
     com.apple.Mobile <865e9aa3dce0392393a2445e115bc26f>         0.022         185                0           -           518   50                       (daemon) (idle)
     softwareupdated <fbc339ae37193ef1b1bd2a9d5e9bcbe4>         0.031         212                0           -           601   50                       (daemon) (idle)
     mobileassetd <2a22e27544cc3061a22b02482e465e18>         0.336         581                0           -          2101   50                       (daemon) (idle)
     misd <33855e3c639237059e7c9d7dda6aca90>         0.033         206                0           -           823   50                       (daemon) (idle)
     CallHistorySyncH <bc9285858ef43d54840605171b184fa2>         0.060         431                0           -          1252   50                       (daemon) (idle)
     IMDPersistenceAg <5fa1bcbbda9430798334affdb70def14>         0.030         277                0           -           930   50                       (daemon) (idle)
     timed <6fa98ab7f5de312b9bfed47e04e3a43e>         0.032         277                0           -          1031   50                       (daemon) (idle)
     AppleIDAuthAgent <32f4603750953460b1a7cb4969fd7cf5>         0.045         318                0           -          1743   50                       (daemon) (idle)
     keybagd <04b17e6606dd367885be8033ee6f077a>         0.015         161                0           -           381   50                       (daemon) (idle)
     biometrickitd <6298f82913613677b4b7207a26c585ec>         0.421         261                0           -           786   50                       (daemon) (idle)
     mediaremoted <baa09addc0ae3b55a72cfe7b2699a962>         0.033         318                0           -          1294   50                       (daemon) (idle)
     recentsd <c21dbb35d7a232298410e388a1752a23>         0.063         420                0           -          1455   50                       (daemon) (idle)
     softwareupdatese <4709ed9e2ad1314c8967b0ccefdd61eb>         0.258         977                0           -          1713   50                       (daemon) (idle)
     geod <0f816c02eb453d968c7bd1e4c1ecb994>         0.149         642                0           -          1539   50                       (daemon) (idle)
     MobileGestaltHel <7c83454f8c06366ebf04aea3bb88684b>         0.040         180                0           -           559   50                       (daemon) (idle)
     calaccessd <0a7ad7bbfb523bfdbae43aa6f21279f6>         0.191         631                0           -          1786   50                       (daemon) (idle)
     awdd <58036e1703903ee798a8803de204c300>         0.059         443                0           -          1216   50                       (daemon) (idle)
     lsuseractivityd <a9a6b77429543057b3e8dcf41f843882>         0.065         425                0           -          1977   50                       (daemon) (idle)
     com.apple.uifoun <87486c98c2873ab7a0a1a044a5a0cfd3>         0.029         275                0           -           939   50                       (daemon) (idle)
     DuetHeuristic-BM <e333cee8cc9e3dc282446623596bab84>         0.117         300                0           -          1117   50                       (daemon) (idle)
     healthd <9c827f1747f83866b20dcf4e398cc04d>         0.034         306                0           -          1035   50                       (daemon) (idle)
     com.apple.Stream <203112144ccc3e84acf77312bcf37070>         2.857         187                0           -           753   50                       (daemon) (idle)
     bird <646b4254a19a34caa4840f8001fd4420>         0.058         427                0           -          1779   50                       (daemon) (idle)
     assetsd <4f3af4038d6a31e8877838accafce687>         0.096         671                0           -          2159   50                       (daemon) (idle)
     findmydeviced <36e2b8af21133fb7a5a6271ab4d4f8de>         0.139         638                0           -          2122   50                       (daemon) (idle)
     nehelper <8837f4419593305c9831c00d25a97eaf>         0.869         258                0           -           822   50                       (daemon) (idle)
     assistantd <dff049e87a5932fabdffe16c4714f9a7>         0.071         544                0           -          2332   50                       (daemon) (idle)
     profiled <7b81e857b6ef3a7587f5d82f33801dcb>         1.409         596                0           -          2416   50                       (daemon) (idle)
     pkd <caa0944ef38235e7ac99199add47d66d>         0.038         289                0           -           707   50                       (daemon) (idle)
     accountsd <75b3925e9bec337abda4f51e69fc8aa3>         8.768         712                0           -          1816   50                       (daemon) (idle)
     mobactivationd <73043288866c3d4ca5eac0125c844edf>         0.084         244                0           -           858   50                       (daemon) (idle)
     misagent <ddb04cb78e2537a088fbe6c299c0ed8e>         0.046         177                0           -           418   50                       (daemon) (idle)
     mobile_installat <edbce91b2e3c348f8f4ad95fb6b1ad46>         0.447         289                0           -          1015   50                       (daemon) (idle)
     streaming_zip_co <60920fc5a7c335beb44817afc5fe72c3>         3.391         281                0           -          1111   50                       (daemon) (idle)
     coreduetd <aef9d0f50b733e809cad3a94e579e421>        82.665        1127                0           -          2401   50                       (daemon) (idle)
     sandboxd <bd8f8b9f25243f9986b3ce97fee405cc>         0.374         196                0           -           732   50                       (daemon) (idle)
     installd <99b95276bb41375fa847581e6fbe6374>         0.707         359                0           -          1339   50                       (daemon) (idle)
     swcd <05434abfd6103a369f3321d5bd15c96e>         0.011         194                0           -           533   50                       (daemon) (idle)
     containermanager <7036996ffbed3c0e9b50d8868efe28e0>         0.214         248                0           -           702   50                       (daemon) (idle)
     securityd <90eafc65815f356fab632f1752d53b24>        22.648         661                0           -          1707   50                       (daemon) (idle)
     gamecontrollerd <f41fdd3b557336b6b146bb00a33eab9f>         0.028         287                0           -          1200   50                       (daemon) (idle)
     aosnotifyd <8928d77645f134aa9150588fe1c143cf>         0.131         581                0           -          2008   50                       (daemon) (idle)
     syncdefaultsd <6f6a68c431cc37238c9e618de999477c>         0.065         421                0           -          1260   50                       (daemon) (idle)
     nsurlstoraged <85de3fa57a65304a959e6c2956042080>         1.553         451                0           -          1471   50                       (daemon) (idle)
     coresymbolicatio <09a629143bfc3a7d9228b414bb958ae9>         0.015         132                0           -           727   50                       (daemon) (idle)
     diagnosticd <274578acfd6d358a95c961c0bab148a9>         0.012         148                0           -           269   50                       (daemon) (idle)
     seld <c955a19f0fbd33118c611afe19061379>         3.394         303                0           -          1156   50                       (daemon)
     nsurlsessiond <ab90763d8a453fc68012fabc4b4f55fb>      2952.876         624                0           -          2134   50                       (daemon)
     nfcd <edf2425212b632dbb5ef155ee1600bbb>         2.724         255                0           -           680   50                       (daemon)
     passd <56971afa88b53f05a37688cad47b4160>       157.996         810                0           -          2715   50                       (daemon)
     afcd <4c7ac1d53ab73eada82020285315196f>         0.038         177                0           -           402   50                       (daemon)
     notification_pro <b143453e80393938a7ba23a0181dc52c>         2.654         215                0           -           625   50                       (daemon)
     MobileMail <4b48abd990e93dbea47db1cbf328da9e>         0.317        1302                0           -          3650   50                       (resume) (continuous)
     lsd <f554bd07b90a3cfc9d9ef9f8e234833c>        36.562         474                0           -          1401   50                       (daemon)
     tccd <f2878273872231afa1a6e0af2dcb73a6>         2.322         310                0           -          1084   50                       (daemon)
     kbd <f66b6a1e58b93ad9a2c5bd2e1b278a89>         3.316         895                0           -          3607   50                       (daemon)
     MyAppMobileiOS <3f455836ca6a322eac86d527e1523ab1>        14.932      307041                0           -        139221   50  [per-process-limit]  (frontmost) (resume)
     ptpd <a06176d3eefe3e3c8549bb4f6d340658>         2.108         774                0           -          2011   50                       (daemon)
     BTServer <fb2cd87aeac73d17bf13c86301b5b484>        66.048         631                0           -          2001   50                       (daemon)
     wifid <dd76567ec94c37d9b1c94cd96424b2a9>      1099.027        1335                0           -          2267   50                       (daemon)
     lockdownd <6e013570f34d36daa8738867f8421001>       162.384         436                0           -          2710   50                       (daemon)
     discoveryd <68f73878299336d7872b0ae9ce3f7f08>      2956.940         935                0           -          2164  100                       (daemon)
     imagent <432c43382eeb3724894a973cd6f5a399>        50.719         711                0           -          1777   50                       (daemon)
     identityservices <9d4b00e3c6003685ac8697c59f4e4d38>       149.813         954                0           -          2601   50                       (daemon)
     mediaserverd <a0354e528bc431958df0d50830bead36>        33.273        1696                0           -          4212   50                       (daemon)
     cfprefsd <4325eab208063b998046460a4c2ee484>        98.702         537                0           -          2497   50                       (daemon)
     syslogd <05f6b5e5512938a892bac5af23ab1c08>      1605.858         320                0           -          2162   50                       (daemon)
     iaptransportd <c10fd2029e2e315d92873b74a92c6e9c>       181.800         354                0           -           983   50                       (daemon)
     powerd <2b4ae8758a5b3b709a97c452ec08923b>       286.535         406                0           -           727   50                       (daemon)
     apsd <bb925404cb1137b09b85671a8d2c7656>       312.283        1037                0           -          4497   50                       (daemon)
     networkd <ad1db85ed3c53c6fadbd858f9a88dd20>       237.182         778                0           -          5847   50                       (daemon)
     dataaccessd <33bcaea3bc473f128685f4df14a115eb>        13.681         960                0           -          2823   50                       (daemon)
     sharingd <233b174d5619396cb3af72c7d7e51985>        12.777         885                0           -          2694   50                       (daemon)
     searchd <eff930e81e4d38f796034db851dad1fe>       757.973        1193                0           -          5590   50                       (daemon)
     locationd <a57577b0423133a0b17579011ef1c65f>      2051.091        3549                0           -          5035   50                       (daemon)
     SpringBoard <d9487116f8c239d2b5fb32c12168cac1>        10.514        6275                0           -         25629   50                      
     backboardd <45eb8ac74abd31b386cb3b7ba27618ea>        54.692       97037                0           -        131444   50                       (daemon)
     fseventsd <16c9b62bb28c388ca10d54dbff18c4f8>       143.831         979                0           -          2080   50                       (daemon)
     configd <ed40fcde35ae337ab3b70073199564b1>       117.409        1478                0           -          1865   50                       (daemon)
     fairplayd.A2 <6ca40f79d0ad34d5b4df0a80fce4bc5d>         3.232         176                0           -          1325   50                       (daemon)
     wirelessproxd <ab1fa7e43a7c3f9393533404c2cc80b8>         2.607         299                0           -          1082   50                       (daemon)
     assertiond <10ec04add18f3ecd8a8efbb1cc4e2bd6>        52.340         366                0           -          2071   50                       (daemon)
     distnoted <cb5e76091dc53ceeaf65290f8e197a89>         7.723         244                0           -           500   50                       (daemon)
     discoveryd_helpe <492c39ae2d643adca0ed971675c77406>         0.151         187                0           -           796   50                       (daemon)
     filecoordination <519743feb6cb36ff871945656d950d8b>         0.314         298                0           -          1027   50                       (daemon)
     aggregated <281958649a3130aab6ecb1aa47f0a6c1>         4.644        1092                0           -          2275   50                       (daemon)
     UserEventAgent <f5a211b9c88e3fa481f2bd1ee1f5a921>         2.033         886                0           -          2815  100                       (daemon)
     CommCenter <33412ab229c738c8860c70803fed173b>      1329.544        3270                0           -          6434   50                       (daemon)
     notifyd <5fa8fd5e44c83f64be1475b882b16c82>      1302.113         520                0           -           615   50                       (daemon)
     ReportCrash <698156bee7ff37c0ab9fd8fe15a6ee32>         0.080         395                0           -           829   50                       (daemon)

结束

0 个答案:

没有答案