Tag: xamarin.ios

优化GC语言,任何想法?

在优化方面,我是一个非常大的新手。 在我正在进行的当前游戏中,我已经设法优化了一个function并削减了大约0.5%的CPU负载,这就像我一直“非常棒”。 我的情况如下:我使用一个名为ExEn的XNA包装器库在MonoTouch中开发了一个物理重型游戏,并尝试我可能会发现很难让游戏在iPhone4上达到可玩的帧速率(不要甚至想在此时考虑iPhone3GS)。 物理计算中的性能下降几乎可以肯定,如果我将物理学从帧速率上急剧上升,如果我禁用所有内容,渲染,输入,音频,并且在物理密集的情况下让物理性能在物理上徘徊在15fps左右。 我使用Instruments来分析性能,这就是我得到的: http : //i.imgur.com/FX25h.png耗尽性能最多的函数来自物理引擎(Farseer)或ExEn XNA包装函数调用(特别是Vector2.Max,Vector2.Min)。 我查看了这些函数,我知道它可以在哪里可以通过引用将值传递给那些函数而不是值,这样就覆盖了(而且它实际上是我能想到的唯一方法。函数非常简单,本身基本上等于这样作为 return new Vector2(Max(v1.x, v2.x), Max(v1.y, v2.y)) 基本上我觉得我被卡住了,我的能力和对代码优化的理解有限,我不确定我的选择是什么,或者我是否有任何选择(也许我应该只是卷入胎位并哭?)。 随着LLVM的开启和内置版本,我最多可能获得15fps。 我确实设法通过降低物理精度来使游戏达到30fps,但是这使得许多级别在身体彼此相交并且自身崩溃时无法实现。 所以我的问题是,这是一个失败的原因还是我可以采取哪些措施来提高绩效?

尝试访问WCF服务时出现最新的MonoTouch 4.0问题

我的MonoTouch应用程序使用带有HttpTransportBinding和TextMessageEncodingBinding CustomBinding调用SOAP WCF服务,并且MonoTouch版本3.2.6的一切正常。 我正在更新我的系统以使用MonoTouch版本4.0.0,并且对我的SOAP WCF服务的调用不再有效。 我一直得到System.Net.WebException “The remote server returned an error: 400 Bad Request”; 是什么导致了这个问题,我该如何解决? 如果我再次重新安装MonoTouch版本3.2.6,那么我的应用程序可以正常工作,但是一旦我更新到MonoTouch 4.0,我就会遇到同样的问题。

有什么方法可以在.net中为iphone开发应用程序

我们可以在视觉工作室中开发iphone应用程序吗?有任何模拟器用于测试它与visual studio兼容

使用Newtonsoft Json.Net反序列化为IEnumerable类

我有一个项目,目前正在使用Json.Net为Json反序列化类,如下所示: public class Foo { public Guid FooGuid { get; set; } public string Name { get; set; } public List Bars { get; set; } } public class Bar { public Guid BarGuid { get; set; } public string Description { get; set; } } 到目前为止它工作正常。 为了使迭代更简单,我做了Foo类实现IEnumerable如下所示: public class Foo : IEnumerable { public […]

MonoTouch:应用程序因低内存而被杀,为什么? 实时字节分配5 MB顶部

我的iPad应用程序是用MonoTouch开发的,因为我想避免所有的内存管理地狱,但事实并非如此。 在模拟器上一切正常,但是当我在设备上测试我的应用程序时,我惊恐地发现它在一些内存警告后很快被操作系统杀死了。 我的应用程序是一个简单的图像浏览器,它加载一些PNG图像并使用UIScrollView中的一些UIViews显示它们,在触摸时加载下一个或前一个。 在模拟器上它工作正常。 但是在加载和卸载大约6-11个图像后的设备上,它开始获得内存警告,然后突然该过程被杀死。 我检查了所有的实例循环,并在加载新图像之前正确删除了所有引用。 所以我启动了仪器并开始在iPad上分析我的应用程序的内存分配。 在那里,我发现Live字节只有大约5-9 MB,正如我所期望的那样,但由于一些奇怪的原因,死内存分配几乎完全没有收集,因为在分配了大约50 MB(小于5-9 MB的它是Live Bytes)它被杀了! 以下是我的应用程序的Instruments分析会话的屏幕截图: 这是快照序列: 还有一些小漏洞,但我认为它们不够大,不足以成为罪魁祸首。 它们都是来自strdup的48个字节泄漏,这是在iOS 5.1中发布UIScrollView时的一个已知问题: 即使一切看起来还不错,分配的Live Bytes仍然是5 MB,我的应用程序的REAL内存呈指数级增长,然后在iPad上被杀死高达50MB,而iPhone4S上的高达314 MB,如内存监视器所报告: 有人可以告诉我是否有方法或实用工具来发现问题的原因和位置? 这是一个单调垃圾收集器的错误吗? 还是有一些我没有正确处理的物体? 我怎么能用剖面仪找到那些? 我已经检查了两天我的代码,但一切似乎都正确。 这是我的加载/实例化/处置周期的代码: void StartImageLoadingThread() { tokenSource = new CancellationTokenSource (); token = tokenSource.Token; Task task1 = new Task( () => PerformLoadImageTask(token),token); task1.Start(); } void PerformLoadImageTask(CancellationToken token) { if (token.IsCancellationRequested) { […]

在Xamarin.Forms中使用Thread.Sleep

我想执行以下操作 MainPage = new ContentPage { Content = new StackLayout { Children = { new Button { Text = “Thread.Sleep”, Command = new Command(() => { Thread.Sleep(1000); MainPage.Animate(“”, x => MainPage.BackgroundColor = Color.FromRgb(x, x, x)); }), }, new Button { Text = “Task.Run + Thread.Sleep”, Command = new Command(async () => { await Task.Run(() => […]

MvvmCross – 从View模型调用Web服务

我是MvvmCross和Android开发的新手。 我需要在视图模型中调用POST数据到JSON Web服务。 然后,我需要在我的UI中显示Web服务的结果。 我的视图模型的要点如下所示: public class MyViewModel : MvxViewModel { public override void Start() { base.Start(); } public event EventHandler Service_Finished; public void CallService() { string url = GetServiceUrl(); WebRequest serviceRequest = HttpWebRequest.Create(url); serviceRequest.Method = “POST”; serviceRequest.ContentType = “application/json”; serviceRequest.BeginGetRequestStream(new AsyncCallback(ServiceBeginGetRequestStreamCallback), serviceRequest); } private void ServiceBeginGetRequestStreamCallback(IAsyncResult ar) { string json = GetJson(); HttpWebRequest myWebRequest […]

Xamarin PCL中缺少Type.GetProperties()

在Xamarin PCL中,我正在尝试获取我编写的类的System.Reflection.PropertyInfo,以便我可以通过其字符串名称访问其属性来获取/设置,并且缺少Type.GetTypeInfo(),以及作为Type.GetProperties。 但System.Reflection.PropertyInfo是一个有效的类。 我怎样才能获得课程的属性信息? 我是否必须为每个平台编写一个包装器? (它在Android / iOS项目中表现得很好)。

如何回收我的SqliteCommand来加速这个Sqlite批量插入(iOS)?

我正在使用下面的代码批量插入30000行(一次1000行)。 它仍然没有那么快。 在这个例子中提高了SQLite的每秒INSERT性能? 我可以看到他们只创建了一次SqliteCommand,然后重新循环它重置它并清除绑定。 但是,我在iOS / Monotouch上找不到合适的方法。 没有Reset()或ClearBindings()或其他类似的东西。 using ( var oConn = new SqliteConnection ( “Data Source=” + DB_NAME ) ) { oConn.Open ( ); // Wrap the whole bulk insertion into one block to make it faster, otherwise one transaction per INSERT would be created. // Note that this is differen from “BEGIN […]

MvvmCross Monotouch – 无法在真实的iPad上绑定属性,但它可以在模拟器上运行

我正在与MvvmCross Monotouch合作。 以下是在iOS模拟器上实际运行良好的绑定代码。 { this, “{‘Title’:{‘Path’:’NavigationBarTitle’}} 但是,当我在真正的iPad(iPad 2)上部署它时,它不起作用。 Application Output: =================== MvxBind: Warning: 0.69 Failed to create target binding for from NavigationBarTitle to Title 我很高兴看到它可以在iOS模拟器上运行但是,有什么理由说它不能在真正的iPad上运行吗? 帕特里克