在Macos上尝试snmalloc 我想知道为什么所有创建的二进制文件都是 >256MiB。
事实证明,static inline在 Mac OS X 上,ARM64 和 x86_64 上的零初始化数据成员以一种奇怪的方式降低。即使这个简单的测试也会产生巨大的二进制文件:
容器.h
#pragma once
#include <cstdint>
class Container {
public:
inline static uint8_t inner[256000000];
};
Run Code Online (Sandbox Code Playgroud)
主文件
#include "container.h"
int main() {
return Container::inner[0];
}
Run Code Online (Sandbox Code Playgroud)
编译成这样:
$ ~/clang+llvm-12.0.0-x86_64-apple-darwin/bin/clang -O3 -std=c++17 main.cc --target=x86_64-apple-darwin -c; ls -l main.o
-rw-r--r-- 1 hans staff 256000744 Jun 21 16:29 main.o
Run Code Online (Sandbox Code Playgroud)
开源 clang 和 Apple clang 一样。gcc 的行为类似。
在 Linux(用 clang 或 gcc 编译)上,它包含在 .bss 部分中,因此不占用任何空间。
为什么在 Macos 上会出现这种情况?这是错误还是预期行为?
我在Nexus 5上测试Android L预览.我的应用程序出了问题.
我有一些背景设置的TextViews:
android:background="@drawable/rounded_textview"
Run Code Online (Sandbox Code Playgroud)
而"rounded_textview"就是形状.它在<= API19下工作得很好.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="3dp">
<solid android:color="#999999"/>
<corners
android:bottomRightRadius="2dp"
android:bottomLeftRadius="2dp"
android:topLeftRadius="2dp"
android:topRightRadius="2dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
在Android L开发人员预览背景被忽略.我的所有TextView都是透明的.知道我做错了什么吗?
考虑以下代码:
string dir = Environment.CurrentDirectory + @"\a";
Directory.CreateDirectory(dir);
FileSystemWatcher watcher = new FileSystemWatcher(dir);
watcher.IncludeSubdirectories = false;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Deleting " + dir);
Directory.Delete(dir, true);
if (Directory.Exists(dir))
{
Console.WriteLine("Getting dirs of " + dir);
Directory.GetDirectories(dir);
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
有趣的是,这会抛出一个UnauthorizedAccessException Directory.GetDirectories(dir).
删除监视的目录会返回而不会出现错误,但Directory.Exists()仍然返回true并且仍然列出该目录.此外,访问目录会为任何程序产生"拒绝访问".一旦带有FileSystemWatcher的.NET应用程序退出目录就消失了.
如何在仍允许正确删除目录的同时观看目录?
我不确定我是疯了还是什么,但是Android Studio 0.8.0会生成一个Mobile + Wear应用程序,但是WatchActivity将WatchActivity作为手表的MainActivity的子类.那将是美好和花花公子,但课程不存在.
开发者应该做什么?根据JavaDocs,唯一可用的是android.support.wearable.activity.InsetActivity和android.support.wearable.activity.ConfirmationActivity.
java android android-support-library google-play-services wear-os